Hi. Gibt es eigentlich die Möglichkeit die Fuses für den Prozessortakt im laufenden Betrieb aus dem Programm heraus zu ändern? Es geht um einen Atmel Mega 168. Ich finde irgendwie keine Infos darüber. Gruß, Tim
Nicht die Fuses, aber es gibt einen zur Laufzeit konfigurierbaren Taktteiler.
Meintest Du den CLKDIV8? Würde halt gerne mit 128kHz rum Idlen und wenn was passiert, dann die Frequenz hoch setzen. Tim
@ Tim (Gast) >Meintest Du den CLKDIV8? Nöö, den System Clock Prescaler, gesteuert durch das Register CLKPR. Haben aber nur die neueren AVRs. MfG Falk
Tim schrieb: >... > Es geht um einen Atmel Mega 168. > Ich finde irgendwie keine Infos darüber. > ... Hallo, steht doch im Datenblatt? sieh mal auf Seite 37-38! Grüße...
Dann koennt man auch den RC als Takt benutzen und an dessen Geschwindigkeit per Code aendern.
Es gibt bei atmegas mit internem RC ja noch das Oscillator Calibration register, OSCCAL. theoretisch könnte man den takt damit von ca 4mhz bis ca 16mhz rumdrehen.. hab ich noch nie probiert, aber da könnte man eben gut dran drehen, mit vielen nachteilen (eeprom, adc, uart) da hab ich bisher kaum/wenig infos drüber gefunden, nur "wie kalibrier ich den internen RC mit uhrenquarz". hat da wer mehr infos/erfahrungen? ansonsten könnte man wohl nen schnellen quarzoszillator nehmen und nen einstellbaren frequenzteiler/zähler nehmen, den man mit dem atmega steuert. ..und dann könnte man nen weiteren atmega daneben setzen, der auf kommando die fuses neu programmiert :D aber aus dem betrieb heraus die fuses ändern kann man meines wissens nicht.
was du suchst, ist ein msp430. da kannst du verschiedene prozessorteile mit verschiedenen takten versorgen, diese takte in ihrer geschwindigkeit verstellen, zusätzlich teilen und zur laufzeit umschalten. auf die schnelle gefunden: http://micahwaldstein.com/2011/03/msp430-clocks-part1.html
Hi >Es gibt bei atmegas mit internem RC ja noch das Oscillator Calibration >register, OSCCAL. theoretisch könnte man den takt damit von ca 4mhz bis >ca 16mhz rumdrehen. Ja, theoretisch. Bei den ATMega48/88/168 wird z.B. nur ein Einstellbereich von 7,3..8,1MHz garantiert. Der einzig sinnvolle Weg ist der System Clock Prescaler. MfG Spess
Versuch nicht durch die Hintertür irgendwelche Tricks. Garantiert wird das in bestimmten Situationen nicht funktionieren und zu den nicht vorhersagbarem Verhalten führen. Such dir einen µC der sowas per Hardware kann, wie zb der vorher genannte MSP430.
Veegiss den MSP430, dessen Compiler Angebot ist etwas limitiert. Der AVR hat auch noch beliebig viele Sleepmodi, die man anschauen sollte.
Hallo Tim, im ATmega644P gibt es ein Register "CLKPR – Clock Prescale Register" wenn am AVR ein 12MHz Quarz hängt kannst du diese Frequenz durch 1, 2, 4, 8, 16, 32, 64, 128, 256 teilen, 12MHz / 256 = 46875 Hz Die Peripherie (UART, ADC, usw.) werden dadurch aber auch beeinflusst.
Hex Oschi schrieb: > Veegiss den MSP430, dessen Compiler Angebot ist etwas limitiert. Der AVR > hat auch noch beliebig viele Sleepmodi, die man anschauen sollte. okay, der msp-gcc mag ein haufen patches sein, trotzdem gibt es ihn. der support dafür ist übrigens hervorragend. findet man wirklich einen compilerfehler und lässt hirnschmalz in seine anfrage fließen, kommt nicht - wie sonst - ein überforderter ahnungsloser "appication engineer", der einem mist erzählt, sondern wirklich die schreiberlinge des msp-gcc. das ccs mag auch nicht grad die erleuchtung zu den IDEs bringen, aber schlecht ist es auch nicht. die compiler, die mitkommen, haben allermeistens eine codegrößenbeschrankung - aber man muss für den allermeisten kleinkram wirklich viel schlechten code schreiben, um mal 16kB ins flash zu bekommen. er mag seine schwachstellen wie jede architektur haben, aber ganz so einfach kann man den msp430 wirklich nicht abtun.
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.