Me preguntaba, ¿funcionará esto de verdad? (cuando se configura el temporizador / prescaler) Ahorra RAM al no usar variables adicionales. ¿Son las mejores formas de hacer esto?
// Microchip PIC10F222
while (1) { //main loop
while ((TMR0 ^ TMR0-1)& 4) { // execute @ 1/4 speed of TMR0 (whenever TMR0 Bit 3 has just toggled)
// high speed stuff
}
while ((TMR0 ^ TMR0-1)& 128) { // execute @ 1/128 speed of TMR0
// low speed stuff (toggle blinking led's)
}
}
Siguiente idea:
No me gusta la idea de perder tiempo en el procesador, o de depender de la sincronización exacta
No estoy seguro sobre el TMR0-2. Supongo que si TMR0 = 0 TMR0-2 será 254.
// Microchip PIC10F222
While(1) { //main loop
// Full speed
if (TMR0&1) { //skip, eccept for TMR0 odd numbers.
// 1/1 timer speed. (Not nececairily used)
// this code may run in one pass with either one of the loops below.
if ((TMR0 ^ TMR0-2)& 64) {
// 1/32 timer speed,(state machines, one step each pass.)
// do not exceed TMR0 period
}
if ((TMR0==255) {
// 1/128 timer speed. (toggle blinking led's, wachdogg)
// do not exceed TMR0 period
}
TMR0++; //TMR0 will be even, preventing passing trough this loop
//until the timer increments itself,
//(Doubeling timer speed in the process)
}
}