Я использую SDCC-компилятор.Переконфигурировать таймер во время прерывания прерывания таймера 8051
То, что я пытаюсь достичь, - это перенастроить таймер 0 в режиме автообновления режима 2 во время его собственного обработчика прерываний. Вот код C:
void reconf(void) __interrupt(1){
TR0=0;
TH0=0xC0;
TL0=0xC0;
TR0=1;
}
Вот вопросы:
Можно ли перенастроить tl0 и TH0 для Timer0 в режиме режима 2 автоперезагрузки во время своего собственного выполнения обработчика прерываний?
Необходимо ли остановить таймер0 во время реконфигурации или нет, потому что он не работает во время перерыва?
Задается ли значение TH0 и TL0 в стек до начала процедуры прерывания ? Если эти значения PUSHed в стек, а затем во время выполнения обработчика подпрограммы я переконфигурировал эти значения, будут ли эти значения переопределены значениями POPed из стека при выходе из прерывания?
Я изучил HEX-файл, который генерируется sdcc после компиляции кода C, и кажется, что TH0 и TL0 не загружены в стек перед выполнением каких-либо процедур прерывания. – distortedbsd
А также я попытался перенастроить timer0 через его прерывание, и он работает. – distortedbsd