LED-displayer
LED-displayer
Ny fråga längst ner!
Hejsan!
Tänkte ge mig på att göra en simpel nedräkningstimer med 7-segments LED-displayer och en 16f628. Det räcker med Minut:Sekund Sekund. Fast idag slog det mig att det skulle ju vara bra att kunna styra alla 3 displayer med samma PIC ,och då fattas det ju I/O.
Har försökt läsa lite om latchar och skiftregister med fattar nada. Jag har nu fått en tanke som jag tycker borde fungera.
Eftersom de har gemensam Anod så tänkte jag så här:
Man kopplar varje anod till var sin I/O på PICen.
De 7 katoderna seriakopplar man och kopplar sen också i sin tur till egna I/O.
Och i koden gör man t.ex. 2 I/O låga, så man får siffran ett. Och man bestämmer vilken/vilka av de 3 displayerna som ska visa ettan genom att sätta dess anod hög.
Är det någon som förstår över huvudtaget vad jag pratar om?
Om min idé är helt skogstokig, hur ska man annars göra?
Tack så mycket!!
*edit*
Har fortsatt googla lite...Är det det är som är multiplexing?
Hejsan!
Tänkte ge mig på att göra en simpel nedräkningstimer med 7-segments LED-displayer och en 16f628. Det räcker med Minut:Sekund Sekund. Fast idag slog det mig att det skulle ju vara bra att kunna styra alla 3 displayer med samma PIC ,och då fattas det ju I/O.
Har försökt läsa lite om latchar och skiftregister med fattar nada. Jag har nu fått en tanke som jag tycker borde fungera.
Eftersom de har gemensam Anod så tänkte jag så här:
Man kopplar varje anod till var sin I/O på PICen.
De 7 katoderna seriakopplar man och kopplar sen också i sin tur till egna I/O.
Och i koden gör man t.ex. 2 I/O låga, så man får siffran ett. Och man bestämmer vilken/vilka av de 3 displayerna som ska visa ettan genom att sätta dess anod hög.
Är det någon som förstår över huvudtaget vad jag pratar om?
Om min idé är helt skogstokig, hur ska man annars göra?
Tack så mycket!!
*edit*
Har fortsatt googla lite...Är det det är som är multiplexing?
Senast redigerad av Rollo 7 november 2004, 20:44:20, redigerad totalt 1 gång.
Jag har också problem med att få mina I/O portar att räcka på min 16f628. Dock så ska jag inte driva 3st LCD´er utan 1 LCD och lite annan utrustning. Jag kör för närvarande med "8-bit Mode" på min LCD, men vad jag har kunnat förstå så ska det gå att köra i "4-bit Mode". Hur går det förfarandet till? Är det nått speciellt som man bör tänka på osv?
Tack på förhand
Tack på förhand
Efter ett kort uppehåll ska jag nu ta tag i dessa igen och få det färdigt!
Håller på o skriva själva timer-koden nu men PicBasic vill inte vara vän med mig.
Eftersom jag multiplexar det hela användet jag mig av olika loopar.
Om jag har en variabel som heter "minut" och vill kunna ändra den utanför loopen, hur gör jag då?
Ungefär så här vill jag ha det:
Då ska den köra Gosubfem istället.
När jag gör så här så säger Proton+ ifrån med en gång.
- "label minut not found"
Nån som vet nåt annat sätt?
Hoppas ni förstår!?
TACK!!
Håller på o skriva själva timer-koden nu men PicBasic vill inte vara vän med mig.
Eftersom jag multiplexar det hela användet jag mig av olika loopar.
Om jag har en variabel som heter "minut" och vill kunna ändra den utanför loopen, hur gör jag då?
Ungefär så här vill jag ha det:
Kod: Markera allt
dim Minut as Fem
...
loop:
Gosub minut
...
fem:
portb = %10000001
return
...
När jag gör så här så säger Proton+ ifrån med en gång.
- "label minut not found"
Nån som vet nåt annat sätt?
Hoppas ni förstår!?
TACK!!
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt:
hehe.. verkar som jag ska beskriva lite bättre...
"minut" är bara en variabel. Istället för att göra flera olika loopar till alla siffor så ändrar jag bara variabeln (minut) till olika subrutiner (siffor) i min kod.
På så vis kan jag använda samma loop till alla siffror, ändrar bara variabeln till 4 etc.
Hoppas ni förstår lite bättre nu..
*edit*
Det ordnade sig!
Bytte ut gosub till portb = och ändrar variabeln till olika binära istället..
"minut" är bara en variabel. Istället för att göra flera olika loopar till alla siffor så ändrar jag bara variabeln (minut) till olika subrutiner (siffor) i min kod.
På så vis kan jag använda samma loop till alla siffror, ändrar bara variabeln till 4 etc.
Hoppas ni förstår lite bättre nu..
*edit*
Det ordnade sig!
Bytte ut gosub till portb = och ändrar variabeln till olika binära istället..
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt:
verkar som det är branch du är ute efter, står mer om det på sidan 45 i PICBasic manualen.
du skriver typ:
eller är jag helt ute och cyklar?
du skriver typ:
Kod: Markera allt
main:
branch variabel,[ett,tva,tre,fyra,fem]
cont:
variabel = variabel+1
goto main
ett:
gosub diska
tralalala
goto cont
tva:
gosub sova
tralalala
goto cont