Forum: Mikrocontroller und Digitale Elektronik AVR ATtiny2313 Uhr Sekundentakt


von Christoph (Gast)


Angehängte Dateien:

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

von Christoph (Gast)


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.

von Peter D. (peda)


Lesenswert?

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

von Christoph (Gast)


Angehängte Dateien:

Lesenswert?

Ok, hier die .bas !

von Michel (Gast)


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.

von Christoph (Gast)


Lesenswert?

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?

von Christoph (Gast)


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?

von Falk B. (falk)


Lesenswert?

OMG! Schon mal was von Tabellen gehört?

von Christoph (Gast)


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

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
Noch kein Account? Hier anmelden.