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
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...
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.
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.