Resultat display
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.
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.
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 manualenhttp://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?
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 manualenhttp://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?
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?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.
"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.
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.
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...
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...
