Sida 18 av 26
Postat: 15 mars 2008, 15:13:02
av Stewal
När jag testade lite förut så rullade cursorn under alla tecken. Jag är inne på att stänga av cursorn, så man slipper att den rullar under tecknena.
Vad menar du med "om man inte ställer om adressen"
Postat: 15 mars 2008, 15:14:53
av Icecap
Man kan ju ställa var cursorn (synlig eller dold) ska stå och därmed var man kommer att skriva nästa tecken.
Postat: 15 mars 2008, 15:36:03
av Stewal
Ser nu i manualen att under "instuctions" kan man stänga av cursorn under display control.
Postat: 15 mars 2008, 15:53:15
av sodjan
Och "stänga av" betyder bara att den inte syns, den finns där fortfarande.
Postat: 15 mars 2008, 16:29:23
av Stewal
Skall nu börja titta på hur man kan lägga upp subrutinen som skall hantera överföringen av tecknena till lcd´n. Var skall man lägga anropet till rutinen i loopen eller någon annanstans?
Postat: 15 mars 2008, 19:51:38
av sodjan
Tja, varför inte "där det behövs" ??
Man kan naturligtsvis göra på lite olika sätt.
En variant är att ha en 2x16 bytes "image" av LCD'n i minnet
som alla rutiner skriver till. Sedan överförs denna till LCD'n
med ett lämpligt intervall av en central (t.ex timer-styrd) rutin.
Eller så skrier varje rutin själv direkt till LCDn.
Eller så samlar man upp anropen lite mer "centralt" i applikationen.
Eller så.......
Allt styrs av behov och krav från applikationen.
Postat: 7 oktober 2008, 09:41:50
av Stewal
Så nu tänkte jag väcka liv i denna tråd igen.
Har nu skaffat större 7-segments displayer som jag tänkt börja med.
Fick hem de igår från Kina och här är en länk till manualen
http://www.sureelectronics.net/pdfs/DE- ... 1.0_EN.pdf.
Har som sagt inte kopplat in något och börjat testa.
Men har en frågor:
Enligt produktbladet är klockfrekvensen max 1 MHz vid 4 st. seriekopplade enheter (7-segments siffror). Kommer att köra med 6 st enheter.
Hur får man en klockfrekvens som är lägre än 4 MHz, som är den interna klockfrekvensen för mikroprocessorn?
Postat: 7 oktober 2008, 09:47:53
av Icecap
Tja... det finns MÅNGA sätt, det beror ju på hur du skickar ut datan till displayen men om vi antar att du väljer USART'en i synkront läge är det bara att ställa prescaleren till rätt läge.
Det är klockan som datan skickas med som inte får bli för hög och det har INGET att göra med CPU-klockan.
Postat: 7 oktober 2008, 11:14:11
av sodjan
Med 4 MHz oscillator så kommer du *ALLTID* att få en klocka under 1 MHz
ut till LED displayen. Det finns inte en möjlighet att komma upp i 1 MHz, sannolikt hamnar du på 100 KHz eller så, beroende på hur smart du kodar...
Postat: 8 oktober 2008, 11:08:30
av Stewal
Icecap skrev:Tja... det finns MÅNGA sätt, det beror ju på hur du skickar ut datan till displayen men om vi antar att du väljer USART'en i synkront läge är det bara att ställa prescaleren till rätt läge.
Nu använder ju jag USART för att ta emot data från klockan och det är i asynkrontläge, såg i databladet att det är under TXSTA som man sätter async/sync läge. Kan man köra USART i olika lägen RC och TX?
Postat: 8 oktober 2008, 11:10:56
av sodjan
Nej, det tror jag inte.
Men glöm att köra LED-displayen via USART, det är enkelt att
klocka ut datat via ett par vanliga I/O-pinnar...
Jag har för övrigt ett antal sådana där liggandes, men har inte
hunnit testköra...
Postat: 8 oktober 2008, 11:56:20
av Stewal
"Men glöm att köra LED-displayen via USART, det är enkelt att
klocka ut datat via ett par vanliga I/O-pinnar... "
Då hoppar jag USART, men hur gör man enklast för att få ut datat via I/O pinnarna.
Display kortet har DATA IN, CLK IN, samt DIMM IN.
Jag har tittade i databladet för 74HC595 och tittat hur den är kopplad på displaykortet.
DATA IN går till DS (serial data input) på 595:an.
CLK IN går via två NAND gatar, som är till för att buffra klockfrekvensen och sen går till SH_CP (shift register clock input) och ST_CP (storage register clock input) på 595:an.
DIMM IN skall vara låg för att aktivera dispalyen.
Postat: 8 oktober 2008, 12:06:26
av sodjan
Lägg ut datat på DATA IN bit-för-bit och klocka in det med CLK IN.
Eller vad är det igentligen du undrar över ?
SURE's datablad beskriver det ju också.
Postat: 8 oktober 2008, 12:10:49
av Stewal
Jag gick just in på databladet för displayen och såg exempel koden. Fattar inte allt men jag får välfråga vart efter.
Postat: 8 oktober 2008, 12:26:28
av sodjan
Nej, för mig som inte läser C-kod flytande, så var det inte
speciellt pedagogisk. Jag fattade inte ett smack av den, men
å andra sidan är det väldigt enklelt att klocka ut data till displayen...
Ett Assembler exempel hade sannolikt varit tydligare i att fall som detta,
det handlar ju mest om att shifta runt ett register och lite "low-level bit-fiddling"...
1 Shifta ut i C-biten. Shifta åt rätt håll (kolla databladet).
2 Kolla C-biten och sätt/cleara DATA IN
3 Pulsa CLK IN up/ner (eller tvärtom)
4 Kör om 1-3 sju gånger för en komplett byte...
Kan antingen skrivas som en loop med en räknare eller
(något snabbare) som en rak kod där samma sak görs 8 gånger.
5 Kör om 1-4 fyra gånger för en komplett display...
6 Kör om 1-5 så många gånger som du har displayer...
Skitenkelt igentligen...
