schönen guten Abend, ich bräuchte mal Hilfe für eine Einstellung eines ATtiny13, ich möchte den ATtiny auf die interne Oscillation von 9,6MHz laufen lassen. zum bespielen des µC´s verwende ich AVR Studio oder myAVR ProgTool, meine erste Frage wäre worin liegt der Unterschied zwischen: int. RC Osc. 9,6MHz; Start.up time 14 ck +0ms int. (...) +4ms int. (...) +64ms? und zweitens es ist auf (...)+0ms eingestellt ich möchte die internen 9,6MHz nutzen da ich sie für die PWM brauche wieso erstmal egal.... also habe ich wie folgt Programmiert CLKPR|= (1<<CLKPCE)|(0<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0); es soll kein Prescaler verwendet werden also volle 9,6MHz verwendet werden mit #define F_CPU 9600000 wird die CPU Frequenz einsgestellt wird für die delay Funktion benötigt. zum testen habe ich einfach mal eine blinkende LED genommen: #define Signal (1<<PB2) #define Signal_an PORTB |= Signal #define Signal_aus PORTB &= ~Signal #define aus 0 #define an 1 void LED(int status) {// starte Funktion if (status==an) {//starte if Signal_an; }//ende if if (status==aus) {//starte if Signal_aus; }//ende if }// ende int main(void) {// starte main DDRB= Signal; while(1) //Endlosschleife { LED(an); _delay_ms(500); LED(aus); _delay_ms(500); } }// ende main nun Leuchtet die LED nicht mit den gewünschten 1 Hz sonder leuchtet ca 2s und ist 2s aus Programmiere ich #define 1200000 blinkt sie mit 1 Hz nun weiß ich nicht wo ich was falsch Eingestellt habe oder was ich vergessen habe, denn es ist scheinbar ja nicht umgestellt worden. Kann mir hier wer helfen? danke in vorraus
zu 1 : Anpassung an die Versorgungsspannung bzw. das Einschalten -> Datenblatt Tabelle 6.5 zu 2 : sicher die Fuse CKDIV8 gesetzt avr
ok habe den Tiny mal auslesen lassen und es ist auf 9,6MHz +0ms eingestellt und das Fuse CKDIV8 ist gesetzt dennoch läuft die Frequenz immer noch nicht mit 1 Hz ich weiß echt nicht mehr weiter.... bei F_CPU 1200000 blinkt es mit 1 Hz also ist der Prescaler immernoch auf /8 eingestellt richtig? aber wieso gehtd er nicht raus?
Christian Dopatka schrieb: > ok habe den Tiny mal auslesen lassen und es ist auf 9,6MHz +0ms > eingestellt und das Fuse CKDIV8 ist gesetzt dennoch läuft die Frequenz > immer noch nicht mit 1 Hz ich weiß echt nicht mehr weiter.... bei F_CPU > 1200000 blinkt es mit 1 Hz also ist der Prescaler immernoch auf /8 > eingestellt richtig? aber wieso gehtd er nicht raus? Weil CKDIV8 dafür sorgt, dass die 9.6Mhz erst mal durch 8 geteilt werden, ehe sie zur µC Versorgung benutzt werden. Einfach die CKDIV8 ausschalten und du hast die vollen 9.6Mhz.
da CKDIV8 Werksintern eingestellt war habe ich den haken mal raus genommen, denke mal das es invertiert wurde nun Funktioniert es
Startup-time: Der Kontroller muss nach dem Anliegen der Spannung erst einmal etwas warten, bis der Taktoszillator stetig läuft. Besonders bei Quarzen am Kontroller dauert das recht lange. Deshalb ist immer die längste startup-zeit (64ms)die sicherste Sache. Nur in Sonderfällen braucht man einen Schnellstart des Kontrollers, dann kann man auf kürzere Zeiten übergehen, wenn man Bescheid weiß.
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.