Que tal comunidad.
Espero alguien me pueda ayudar, he programado con AVRStudio en ASM sin problemas, pero empece a programar en C untilizando WinAVR, y todo iba bien hasta que empeze a utilizar sentencias IF, ya que no me funcionaron, entraba al IF aun cuando no correspondia el valor de la variable a la pregunta del IF, o no entra cuando si corresponde el valor.
Utilizo las ultimas versiones de ambos programas, y nose que hacer.
Un ejemplo: En este programa la variable MODE le asigno el valor 0 por defaul, y cuando ocurre la interrupcion del Timer0 se cambia su valor, pero el IF no le hace caso y sigue sin entrar en if (MODE==1), como si el valor no hubiese cambiado, este programa no tiene ningun propocito, solo mostrar lo que no funciona con el IF, gracias.
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
unsigned int MODE;
int main(void)
{
MODE=0;
DDRB = 0xff;
TCCR0=0x01;
TIMSK=0x01;
TCNT0=0xF5;
sei();
while(1)
{
if (MODE==1) {
PORTB=0x00;
}
if(MODE==0){
PORTB=0xFF;
}
}
}
ISR(TIMER0_OVF_vect) {
MODE=1;
}
Espero alguien me pueda ayudar, he programado con AVRStudio en ASM sin problemas, pero empece a programar en C untilizando WinAVR, y todo iba bien hasta que empeze a utilizar sentencias IF, ya que no me funcionaron, entraba al IF aun cuando no correspondia el valor de la variable a la pregunta del IF, o no entra cuando si corresponde el valor.
Utilizo las ultimas versiones de ambos programas, y nose que hacer.
Un ejemplo: En este programa la variable MODE le asigno el valor 0 por defaul, y cuando ocurre la interrupcion del Timer0 se cambia su valor, pero el IF no le hace caso y sigue sin entrar en if (MODE==1), como si el valor no hubiese cambiado, este programa no tiene ningun propocito, solo mostrar lo que no funciona con el IF, gracias.
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
unsigned int MODE;
int main(void)
{
MODE=0;
DDRB = 0xff;
TCCR0=0x01;
TIMSK=0x01;
TCNT0=0xF5;
sei();
while(1)
{
if (MODE==1) {
PORTB=0x00;
}
if(MODE==0){
PORTB=0xFF;
}
}
}
ISR(TIMER0_OVF_vect) {
MODE=1;
}