Moin Moin! Bin gerade dabei eine Digitale Uhr mit einem Attiny2313 nachzubauen. Ich habe die Uhr nach dem Schaltplan von Blackstrom gebaut, jedoch mit einem Attiny2313 anstatt des vom Autor verwendeten AT90S2313. Es funktioniert auch soweit alles richtig. Aber nun hätte ich gern noch eine Sekundenanzeige. Ich hätte noch einen Atmega32 da, mit dem die Uhr auch läuft, falls die Sekundenanzeige Programmmäßig realisiert werden sollte. Oder aber, der Sekundentakt wird auch den freien Pin des 2313 (PD6) gelegt und ich arbeite danach mit Zähler IC's und BCD zu 7 Segment treibern. Da ich leider nicht wirklich ahnung von dem programm habe, weiss ich nicht wie ich vorgehen soll! Das einfachste wäre wahrscheinlich den atmega32 zu verwenden und dann auf 6 pins die sekunden binär auszugeben, aber wie stellt man das an? Den Code habe ich ma in der txt datei angehängt, vielleicht mag mir ja einer helfen :) mfg Christoph
Ich nochmal... Ich glaub ich bräuchte 8 pins am mega32 für 2x 4bit, die dann an 2 BCD -> 7 segment decoder gehen. Dann müsste es in Programm festgelegt werden das die einen 4 bit die sekunden 0-9 hochzählen und die anderen 4 bit dann alle 10s einen hochzählen.
Christoph schrieb: > Den Code habe ich ma in der txt datei angehängt Mir ist kein Compiler bekannt, der *.txt versteht. Warum also die falsche Namensgebung? Quelltexte sollten immer compilierbar sein. Peter
Christoph schrieb: > Ich glaub ich bräuchte 8 pins am mega32 für 2x 4bit, die dann an 2 BCD > -> 7 segment decoder gehen. Dann müsste es in Programm festgelegt werden > das die einen 4 bit die sekunden 0-9 hochzählen und die anderen 4 bit > dann alle 10s einen hochzählen.Beitrag melden | Bearbeiten | Löschen | Wieso das? Der Sekundenzähler läuft doch schon. Du mußt nur den Multiplexer erweitert und zwei Leitungen/Transistoren/Widerstände für die Ziffernaktivierung ergänzen. Für Sekundentakt ist PortD6 sogar schon deklariert.
Ich seh nich das Pin D6 irgendwo deklariert ist?! Und wenn ich im multiplexmode die Sekunden mit anschließe, brauch ich doch 2 Pins oder?
Ich hab das nun um 2 Ziffern erweitert:
1 | Select Case Temp_ziffer 'welche Ziffer soll angesteuert werden |
2 | Case 1 : Ziffer_1 = 1 '1. Ziffer |
3 | Ziffer_2 = 0 |
4 | Ziffer_3 = 0 |
5 | Ziffer_4 = 0 |
6 | Ziffer_5 = 0 |
7 | Ziffer_6 = 0 |
8 | Bcd_aus = Zh_stunde |
9 | Case 2 : Ziffer_1 = 0 '2. Ziffer |
10 | Ziffer_2 = 1 |
11 | Ziffer_3 = 0 |
12 | Ziffer_4 = 0 |
13 | Ziffer_5 = 0 |
14 | Ziffer_6 = 0 |
15 | Dezimalpunkt = Sek_blink 'Dezimalpunkt |
16 | Bcd_aus = Zl_stunde |
17 | Case 3 : Ziffer_1 = 0 '3. Ziffer |
18 | Ziffer_2 = 0 |
19 | Ziffer_3 = 1 |
20 | Ziffer_4 = 0 |
21 | Ziffer_5 = 0 |
22 | Ziffer_6 = 0 |
23 | Bcd_aus = Zh_minute |
24 | Case 4 : Ziffer_1 = 0 '4. Ziffer |
25 | Ziffer_2 = 0 |
26 | Ziffer_3 = 0 |
27 | Ziffer_4 = 1 |
28 | Ziffer_5 = 0 |
29 | Ziffer_6 = 0 |
30 | Bcd_aus = Zl_minute |
31 | Case 5 : Ziffer_1 = 0 '5. Ziffer |
32 | Ziffer_2 = 0 |
33 | Ziffer_3 = 0 |
34 | Ziffer_4 = 0 |
35 | Ziffer_5 = 1 |
36 | Ziffer_6 = 0 |
37 | Bcd_aus = Zh_sekunde |
38 | Case 6 : Ziffer_1 = 0 '6. Ziffer |
39 | Ziffer_2 = 0 |
40 | Ziffer_3 = 0 |
41 | Ziffer_4 = 0 |
42 | Ziffer_5 = 0 |
43 | Ziffer_6 = 1 |
44 | Bcd_aus = Zl_sekunde |
45 | End Select |
reicht das? Und welche pins sind nun die "Enable" für die Transistoren der 2 neuen anzeigen?
So, hab das verstanden mit dem PD6 ;) funktioniert auch soweit, er gibt da nun die 10er Sekunden aus! Welchen pin kann ich denn nun für die einer-sekunden nehmen? Geht da der Pin PA1 oder PA2 ? wie deklariere ich da den port? Weil da is ja noch mein Oszillator mit dran! mfg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.