Gast
#2862882
Hallo liebe Gemeinde,
ich habe folgendes Problem das ich mit Hilfe des „clock_prescale_set(x)“
den CPU Takt reduzieren kann und meine Anwendung damit abarbeiten. Nach
dem Abarbeiten möchte ich die CPU wieder in ausgangs Frequenz setzten
das ich die Daten senden kann. Leider Taktet aber die CPU weiter in
reduzierter Geschwindigkeit. Mit Oszi gemessen.
Bei mir Handelt es sich um einen ATmega644 der ohne Takt Reduzierung mit
20MHz läuft.
Den Quellcode habe ich auch ohne Optimierung generiert aber das leider
keinen Einfluss.
Ich bin inzwischen verzweifelt, kann bitte mir einer von euch helfen?
int main( void )
{
//Alle Unterprogrammen initialisieren
init_prog();
//Alle Variablen in den Unterprogrammen initialisieren
init_var();
/* loop forever */
for( ; ; ){
if (timer2_get_ISR_flag(1) == TRUE){
//CPU Takt reduzieren
while(clock_div_8 != clock_prescale_get()){
cli();
clock_prescale_set(clock_div_8);
sei();
}
//Programm Abarbeitung
ftaste1();
ftaste2();
ftaste5();
//CPU Takt zurücksetzten
while(clock_div_8 != clock_prescale_get()){
cli();
clock_prescale_set(clock_div_8);
sei();
}
if (timer2_get_ISR_flag(2) == TRUE){
Custom_1bis8_Standard();
}
}
}
Vielen Dank schon im Voraus