Danke - muss noch son´nen Quarz besorgen und dann kanns losgehen ;-)
Druckbare Version
Danke - muss noch son´nen Quarz besorgen und dann kanns losgehen ;-)
Hast du keinen Quarz rumliegen? Du kannst den Mega 8 mit einem externen Quarz beschalten (Xtal1 und Xtal2).Zitat:
Zitat von TobiasBlome
IMHO hast du dann eine sehr genau gehende Uhr.
Die Fuses des Mega8 müssen dann aber noch anders gesetzt werden.
Grüße Eisbaeeer
???????
ich denk´ ich muss einen Uhren Quarz benutzen 3x,xxxkHz....? oder nicht
Alle die ich habe sind irgend wo 1-20MHz
Definitv nein. Der Compiler rechnet ja die Frequenz um. Du brauchst nur einen möglichst genauen Takt und den kannst du mit einem genauen Quarz erzeugen.Zitat:
Zitat von TobiasBlome
Du hast einen Atmega8, dann nimm einen 8MHz Quarz, an XTAL1 und XTAL2 anschließen, die Kondensatoren nicht vergessen, die Fuses anpassen und fertig. Die Uhr müsste dann sehr genau laufen.
Die Funktionen von der Soft-Uhr sind dadurch nicht anders.
Grüße Eisbaeeer
und warum nehmen alle andere einen UHRENQUARZ?
ich wollte die "Soft Clock" benutzen. Aber in dem Programm, welches ich hier im Forum gefunden habe ist KEIN Quarz irgendwo definiert... WARUM?
Code:'************************************************************
'Atmega Softclock -> genau Uhrzeit ohne RTC (Real-Time-Clock)
'Benutzt wird ein Mega8/8, Fusebits auf Auslieferungszustand,
'Lcd An Portb , Taster Zum Stellen An Pd.0
'zum Hochzählen An Pd.3.
'zwischen XTAL ist ein 32.xxx Uhrenquarz
'14.08.2006, Andree-HB, www.pixelklecks.de
'************************************************************
$regfile = "m8def.dat"
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Lcd = 24 * 2
Initlcd
Cursor Off
Cls
Enable Interrupts
Config Date = Mdy , Separator = /
Config Clock = Soft
Config Portd = Input
Portd.0 = 1 'Taster1, Zeit/Datum stellen, PullUp ein, schaltet gegen Minus
Portd.3 = 1 'Taster2, Zahl hochzählen, PullUp ein, schaltet gegen Minus
Time$ = "00:00:00" 'Setzen auf Startwert
Date$ = "00/00/00" 'Setzen auf Startwert
Do
Locate 1 , 1
Lcd Time$ 'Zeige Zeit in Zeile1
Locate 2 , 1
Lcd _day ; "/" ; _month ; "/0" ; _year 'Zeige Datum in Form DD/MM/YYin Zeile2
'lcd Date$ 'zeige Datum in Form MM/DD/YY
If Pind.0 = 0 Then Gosub Time 'wiederhole Anzeige bis Taster 1 zum Stellen gedrückt, springe nach Sub "Time"
Loop
End
'Stunde
Time:
Waitms 200
Cls 'lösche Zeilen
Do
Locate 1 , 1
Lcd "Set Hour:" 'Stunden setzen
Locate 2 , 1
Lcd _hour
If Pind.3 = 0 Then 'Mit Taster 2
Incr _hour 'hochzählen
Locate 2 , 1
Lcd _hour
End If
If _hour > 23 Then 'Zählt bis Max, danach wieder ab 0
Cls
_hour = 00
End If 'solange, bis Taster 1 gedrückt
Loop Until Pind.0 = 0
Waitms 200
'Minute
Cls
Do
Locate 1 , 1
Lcd "Set Minute:"
Locate 2 , 1
Lcd _min
If Pind.3 = 0 Then
Incr _min
Locate 2 , 1
Lcd _min
End If
If _min > 59 Then
Cls
_min = 00
End If
Loop Until Pind.0 = 0
Waitms 200
Cls
'Tag
Cls
Do
Locate 1 , 1
Lcd "Set Day :"
Locate 2 , 1
Lcd _day
If Pind.3 = 0 Then
Incr _day
Locate 2 , 1
Lcd _day
End If
If _day > 31 Then
Cls
_day = 01
End If
Loop Until Pind.0 = 0
Waitms 200
Cls
'Monat
Cls
Do
Locate 1 , 1
Lcd "Set Month :"
Locate 2 , 1
Lcd _month
If Pind.3 = 0 Then
Incr _month
Locate 2 , 1
Lcd _month
End If
If _month > 12 Then
Cls
_month = 01
End If
Loop Until Pind.0 = 0
Waitms 200
Cls
'Jahr
Cls
Do
Locate 1 , 1
Lcd "Set Year :"
Locate 2 , 1
Lcd _year
If Pind.3 = 0 Then
Incr _year
Locate 2 , 1
Lcd _year
End If
If _year > 10 Then
Cls
_year = 00
End If
Loop Until Pind.0 = 0
Waitms 200
Cls
_sec = 00 'Springe Nach Setzen Von Zeit / Datum Wieder Zurueck
Return
Hallo
Ich hab da was interessantes für dich gefunden. Zitat:
Das beantwortet wohl deine Frage. Da ich mit einem Atmega32 arbeite und die Uhr extern machen werde, hab ich mir das Datenblatt vom Amega8 noch nicht angeschaut.Zitat:
Hast du dir das Datenblatt des ATmega8 wirklich mal angesehen ?
Der ist extra vorgesehen für den Anschluss eines 32Khz Uhrenquarzes
an den Anschlüssen Tosc1 und Tosc2.
Damit wird dann der Timer2 getaktet.
Der Prozessor selbst lässt du dann mit dem Internen RC-Oscillator
mit 1, 2, 4 oder 8 MHz laufen.
Das klappt dann auch.
Gruß Jan
Grüße Eisbaeeer
Naja - sooooooooo genau hab´ich das Datenblatt denn doch nicht "gelesen" da mein englisch auch nicht sooo gut bleibt es wohl mehr bei überfliegen und dann spezielle Stellen heraussuchen...
Danke!
Tobias