Sida 5 av 6

Re: Första försöket med min PICkit 2. (Inga Svenska tecken)

Postat: 3 maj 2010, 00:52:44
av jojje
ToPNoTCH:
Jepp, det var dom stora jag menade. (Dom svenska versalerna.)

Funkar det med svenska tecken på en Grafisk LCD 128x64 direkt, eller måste man göra egna tecken där?
Tex dom här? http://swechtrading.se/zencart/index.ph ... cts_id=272

Föresten, den här som är 160x128, kan den användas med samma program eller är allt special?


GFEF:
Kanske inte hade vart så dumt, men nu är det lött å färdigt.
Har för mig att det var nån här som gjort eget kort med massa testgrejjer på. Vart hittar jag den tråden tro?

Re: Första försöket med min PICkit 2. (Inga Svenska tecken)

Postat: 3 maj 2010, 00:57:37
av sodjan
Att (större delen av de) svenska tecknen saknas är "HD44780 standard".

> Funkar det med svenska tecken på en Grafisk LCD 128x64 direkt,...

Det beror på vilken controller den har. Den du länkar till saknar
teckengenerator så du kan (måste) skriva precis vad du vill.

Den andra har en (helt) annan controller och fungerar sannolikt
ganska annorlunda...

Re: Första försöket med min PICkit 2. (Inga problem just nu)

Postat: 3 maj 2010, 01:20:46
av jojje
Tackar för svaren allihop. Får väl skriva på engelska då, det verkar vara lättast till slut. :(

Det är inte för att jag inte fattar, men jag tänkte göra en grejj för svenska lite äldre med dårlig utbildning.
Jepp, jag generaliserar, men av erfarenhet så är det tyvärr så med den yrkeskategorin.

Re: Första försöket med min PICkit 2. (Inga problem just nu)

Postat: 3 maj 2010, 10:24:43
av vfr
Det är egentligen inga problem att köra svenska tecken med 44780. Om jag inte minns helt fel, så finns två av tre tecken (åäö) på annat ställe i teckengeneratorn. Både uppercase & lowercase. Det handlar om att göra en jämförelse med dom tecken man vill byta ut när man kommer in i utskriftsfunktionen, och sedan byta till det man vill ha. Det tredje tecknet, plus andra som man anser sig behöva, kan definieras som eget tecken i kontrollern. Ta det steg för steg så löser du nog det.

Re: Första försöket med min PICkit 2. (Inga problem just nu)

Postat: 3 maj 2010, 10:46:19
av jojje
OK, men jag hoppar över detta, i alla fall för tillfället. Som nån annan skrev, så blir versalerna för stora för att få plats i alla fall, så...

Kommer nån på ett enkelt "botemedel" så blir jag (och många andra också troligtvis) glad, men...

Re: Första försöket med min PICkit 2. (Inga problem just nu)

Postat: 3 maj 2010, 11:23:54
av sodjan
> Det är egentligen inga problem att köra svenska tecken med 44780...

Det du beskriver är just det man måste göra.
Om man sedan kaller det för "inga problem" är väl mer en personlig sak... :-)

Re: Första försöket med min PICkit 2. (Inga problem just nu)

Postat: 3 maj 2010, 11:29:55
av jojje
vfr:
Har du någon beskrivning/tutorial eller liknande på hur man på ett enkelt sätt fixar till det hela?

Re: Första försöket med min PICkit 2. (Inga problem just nu)

Postat: 3 maj 2010, 11:35:25
av Glenn
Om du vill kan jag klistra in raderna jag använder i PBP för att generera å och Å (designade av mej, men inte speciellt unika ;) ) men jag har inte orkat göra nån speciell wrapper för det där utan lägger in åäöÅÄÖ separat med dess koder när jag ska skriva på svenska.

Re: Första försöket med min PICkit 2. (7-seg. & skiftregister)

Postat: 3 maj 2010, 11:44:37
av jojje
Jepp Glenn, det får du gärna göra. Om jag fattar hur jag ska göra, så gör jag ett försök. Tackar på förhand.


En annan sak som dök upp. Jag köpte en sån här från Swech. Har för mig att jag hittade hur jag skulle koppla in den, men nu hittar jag inte tillbaka. Rent fysiskt är det nog inga problem, det är bara att följa schemat, men hur gör man det i programmet?

Re: Första försöket med min PICkit 2. (7-seg. & skiftregister)

Postat: 3 maj 2010, 12:05:45
av sodjan
> men hur gör man det i programmet?

Som det står på sidan du länkade till :
"Drivs via seriella skiftregister. Clock, Data, Strobe."

Vilken del av "programmet" är det du undrar över ?
Hur du bestämmer vad det ska vara på displayerna eller
hur du får ut det till displayerna ?

Re: Första försöket med min PICkit 2. (7-seg. & skiftregiste

Postat: 3 maj 2010, 12:16:26
av vfr
Om man sedan kaller det för "inga problem" är väl mer en personlig sak...

Självklart är det så. :) Jag menade mer att det inte är stora olösta tekniska problem att göra så.

Har du någon beskrivning/tutorial eller liknande på hur man på ett enkelt sätt fixar till det hela?

Kör på Glenns exempel! Det låter som att det är mer eller mindre rakt på sak färdigt i BASIC.

Re: Första försöket med min PICkit 2. (7-seg. & skiftregister)

Postat: 3 maj 2010, 12:22:13
av jojje
Sodjan:
För att få ut det på displayerna. Tex hur skriva "6" på den den tredje displayen.

Eller ännu bättre:
Jag vill kunna skriva in tex "176,9" och få ut det på 7-segmentaren.
Får kanske göra lite kod som jag klistrar in här först. :D

Re: Första försöket med min PICkit 2. (7-seg. & skiftregister)

Postat: 3 maj 2010, 12:25:44
av Glenn
jojje skrev:Jepp Glenn, det får du gärna göra. Om jag fattar hur jag ska göra, så gör jag ett försök. Tackar på förhand.
Ska försöka komma ihåg när jag kommer hem sen :)

Re: Första försöket med min PICkit 2. (7-seg. & skiftregister)

Postat: 3 maj 2010, 14:12:34
av sodjan
> För att få ut det på displayerna. Tex hur skriva "6" på den den tredje displayen.

Du får göra det i flera steg.
Alla 4 7-segmentarna ligger i serie så det går åt
7x4 (eller troligare 8x4) bitar för att skriva till hela displayen.
Det gör också att du inte kan skriva till en enstaka display, alla
4 uppdateras/skrivs alltid tillsammans, men det kan du dölja rent
logiskt i koden.

Så får att skriva "6" så får du först slå upp motsvarande 7-seg kod
för att det ska bli en sexa. Sedan lägga det på rätt position i hela
bit-sekvensen (8x4 bitar) så att det hamnar på rätt display. Och
slutligen klocka ut 32 bitar (8x4) till displayen. Klart !

Re: Första försöket med min PICkit 2. (7-seg. & skiftregister)

Postat: 3 maj 2010, 14:29:54
av jojje
OK, det lät ju enkelt. :wink:
Får se om jag kommer på hur man gör. Det att skriva till alla fyra displayerna på en gång spelar nog ingen roll.
Det är att skriva ut en summa på dom, tex " 176" jag ska göra, vi kan hoppa över decimalerna.

Jag har en variabel som heter "summa" och den ökar med 1 varje gång jag trycker på knappen.
Nu skriver jag till LCD-skärmen, men vill ha ut det på 7-segmentarna i stället.
Kanske det blir bra mycket lättare att hålla sig till LCD'n, hmm...
Det är bara för att få lite större siffror att läsa på långt håll.

Kod: Markera allt

program LCDtest

' Lcd module connections
dim LCD_RS as sbit at RC4_bit
    LCD_EN as sbit at RC5_bit
    LCD_D4 as sbit at RC0_bit
    LCD_D5 as sbit at RC1_bit
    LCD_D6 as sbit at RC2_bit
    LCD_D7 as sbit at RC3_bit

    LCD_RS_Direction as sbit at TRISC4_bit
    LCD_EN_Direction as sbit at TRISC5_bit
    LCD_D4_Direction as sbit at TRISC0_bit
    LCD_D5_Direction as sbit at TRISC1_bit
    LCD_D6_Direction as sbit at TRISC2_bit
    LCD_D7_Direction as sbit at TRISC3_bit
' End Lcd module connections

dim txt1 as char[16]
    txt2 as char[16]
    txt3 as char[8]
    txt4 as char[8]
    oldstate as byte
    summa as integer
    i    as byte                    ' Loop variable

main:
  TRISC = 0                         ' Set PORTC all to output
  TRISA.0 = 1                       ' Set PORTA.0 to input
  ANSEL  = 0                        ' Configure AN pins as digital I/O
  ANSELH = 0

  txt1 = "Nytt:"
  txt2 = "Skriv, tryck OK"
  txt3 = "    23"
  summa = 56

  Lcd_Init()                        ' Initialize Lcd
  Lcd_Cmd(_LCD_CLEAR)               ' Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF)          ' Cursor off
  Lcd_Out(1,1,txt1)                 ' Write text in first row
  Lcd_Out(2,1,txt2)                 ' Write text in second row
  Delay_ms(500)                     ' Wait 0,5 sec

  while TRUE                        ' Endless loop

  if Button(PORTA, 0, 1, 1) then
    Lcd_Out(1,6,txt3)               ' Write text in first row
    oldstate = 255
  end if
  if oldstate and Button(PORTA, 0, 1, 0) then
    summa = summa + 1
    IntToStr(summa,txt4)
    Lcd_Out(1,6,txt4)               ' Write text in first row
    oldstate = 0
  end if

  wend
end.