AVR ATtiny2313 Uhr Sekundentakt

Gast #2162185
Lesenswert?

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
Angehängte Dateien:
Gast #2162197
Lesenswert?

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.
Gast #2162213
Lesenswert?

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.
Gast #2162234
Lesenswert?

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?
Gast #2162287
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren