Sida 20 av 26
Postat: 9 oktober 2008, 22:28:02
av Marta
Nu kanske jag är ute i det blå, men konstruktionen av modulerna förefaller lite egendomlig. Shiftregistret har en inbyggd latch, just för att man skall kunna skifta utan att utgångarna fladdrar, men detta används inte.
Eftersm denna inte är transparent utan flanktriggad har de kopplat samman den med klockan till skiftregistret för att bli av med den. Troligen leder denna märkliga konstruktion till att tecknet inte läggs ut korrekt förän efter ytterligare en klockpuls, eftersom den data som skiftats in inte överförs förän vid nästa puls.
Postat: 9 oktober 2008, 22:39:44
av sodjan
Tja, det är ju väldigt enkelt att testa.
Visst hade det varit lite snyggar med en separat "latch"
pinne som överför shiftregistret till utgångarna, men det
fungerar säkert även så här om man bara gör rätt.
Postat: 10 oktober 2008, 09:26:25
av Stewal
Jag var som sagt inne på att den stegar fram en för varje bit och klock puls.
D.v.s att du *alltid* måste skicka ut 24 bitar innan du lägger "E"
låg igen, det är först då som alla moduler innehåller rätt data.
Kan man säga att när man sätter E hög igen så börjar man skriva på ruta 1 igen?
Postat: 10 oktober 2008, 10:16:59
av Stewal
sodjan skrev:Tja, det är ju väldigt enkelt att testa.
Visst hade det varit lite snyggar med en separat "latch"
pinne som överför shiftregistret till utgångarna, men det
fungerar säkert även så här om man bara gör rätt.
Ja det hade inte varit fel med ett tydligare datablad.
Postat: 10 oktober 2008, 10:54:07
av sodjan
> Jag var som sagt inne på att den stegar fram en för varje bit och klock puls.
EXAKT !!
> Kan man säga att när man sätter E hög igen så börjar man skriva på ruta 1 igen?
Nej, det kan man inte säga. Du skriver *ALLTID* på ruta 1 !
*Varje* bit som klockas in hamnar på *först* "ruta 1".
Det hela är ett 24 bitars shiftregster...
Om du har flera seriekopplade displayer så måsta du alltid skriva
ut till alla dipslayerna. Det går inte att bara skriva till en av dom.
(E styr bara om displayen är tänd eller inte, det har ingenting med
inklockningen av data att göra.)
Och det är inget större fel på databladet.
Postat: 10 oktober 2008, 11:26:52
av Marta
Du får experimentera och prova för att lära dig. Du måste skaffa Dig själv erfarenhet. Det är Ditt enda sätt att klara projektet. Var inte rädd för att testa. PIC klarar minst 10.000 omflashningar, troligen det tiodubbla oc är dessutom väldigt billig. I den här applikationen finns ngenting som kan gå sönder av att Du programmerar fel.
Postat: 10 oktober 2008, 11:47:45
av Stewal
Jag håller just nu på och testar för fullt.
Postat: 10 oktober 2008, 15:43:46
av Stewal
Nu har det testats och åter testats, men har inte lyckats så bra.
Har lyckats med att få siffror till första displayen, men den andra blir det problem som sen stegar vidare.
Problemet är när man kommet till sista biten, den som är till för att tända punkterna. Den vidarebefodras till nästa display och sätts som den första bitten där.
Alltså bit 8 i första displayen och bit 1 i den andra får får samma värde. Detta gäller för alla displayer som är seriekopplade vidare i kedjan.
Kan detta ha att göra med att "shift register clock input" och "storage register clock input" är ihop kopplade på 595:an?
Postat: 10 oktober 2008, 15:46:27
av sodjan
> när man kommet till sista biten, den som är till för att tända punkterna.
Det finns ingen sådan bit !
Eller hur menar du med att "tända" ? Det är ju E-pinnen som
gör det, inte någon data-bit.
Postat: 10 oktober 2008, 15:55:10
av Stewal
bit 8 eller mer exakt bit 7, eftersom man börjar räknar från 0.
Sätter man bit 7 hög och sedan sätter E-pinnen låg, så tänds punkterna och första segmentet i andra displayen
Postat: 10 oktober 2008, 16:00:37
av vfr
Är det så direkt efter spänningspåslag på diplayerna?
Det låter isåfall märkligt. I det läget borde skiftregistret vara tomt och så länge du inte klockat in någon data så skall inget visas när E aktiveras.
Är det inte efter spänningspåslag så kan det stå vad som helst i shiftregisterna beroende på vad du kan ha klockat in tidigare.
Postat: 10 oktober 2008, 16:17:58
av Stewal
Vid spännings påslag utan att ha något kopplat till displayerna lyser alla segment och punkterna om man slagit på dessa via DIP switch på baksida.
Detta problem jag beskriver sker när man kommer till den sista biten av data som skickas till den första 595:orna på displaykortet.
Postat: 10 oktober 2008, 16:52:49
av sodjan
> Sätter man bit 7 hög och sedan sätter E-pinnen låg, så tänds punkterna och första segmentet i andra displayen
OK, jag ser vad du skriver...
Jag tänker inte fördjupa mig i det, jag tycker bara att det *borde*
gå att koppla ihop flera och att punkterna på den första ska ligga
en bit före första segmentet på den andra.
Nu så har ju E-pinnen inte något med hur datat shiftas fram genom
kretsen, den bara slår på utgångarna. Datat klockas med CLK pinnen.
Låt E vara låg hela tiden och kör långsamt så att du hinner se vad som händer.
Postat: 10 oktober 2008, 20:35:53
av Stewal
Har nu testat lite mer men inte lyckas få till datat rätt till nästa display o.s.v.
Jag funderar på om man skall dela upp "shift register clock input" och "storage register clock input" och koppla till varsin utgång på PIC´n.
Kan det vara en lösning, efter som det inte står tydligt nog för mig i databladet hur man gör för att skicka data till displayerna. Jag kanske har kollat för mycket på databladet till 595:an.
Postat: 10 oktober 2008, 23:23:18
av sodjan
Har du kört långsamt (en bit i taget) och verkligen verifierat
hur det *faktiskt* fungerar ?