TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: ivan251093 en 14 de Diciembre de 2013, 22:54:45
-
bueno, mi duda es que cuando leo un puerto como el b o el d del atmega8 lo puedo hacer simplemente con los registros pinb y pind respectivamente, pero cuando intento hacerlo con el puerto c simplemente no puedo
en el código que esta abajo quiero usar el puerto c como entradas pero no sucede nada al simular el circuito.
lo hice con enmascaramiento, poniendo por ejemplo:
if((PINC&(0x08))==0X08) y si funciona pero pues quiero saber porque no puedo hacerlo como en el código que anexo
#include <avr/io.h>
int main(void)
{
DDRC=0X00;
DDRD=0XFF;
while(1)
{
if(PINC==0X08)
PORTD=0x04
else if(PINC==0x04)
PORTD=0x02;
else if(PINC==0x02)
PORTD=0x09;
else if(PINC==0x01)
PORTD=0x06;
else
PORTD=0x00;
}
-
Hola yo también soy nuevo en esto de los microcontroladores Atmel, revisando tu código encontré que te falto un ";". En un compilador de C/C++ para windows no es un error de sintaxis y debería de funcionar igual que el AVR Studio :? te anexo el código le agregue unas cosas espacios, sangría, { } etc es mas fácil y una de las buenas costumbres de programación según el libro de Deitel y Deitel jeje es la onda ese libro :D :-) aaaa como recomendación usa el AVR Simulator IDE es mucho mas rápido hacer las pruebas del código y si te funciona en se simulador igual funciona en el micro :lol:
Saludos
#include <avr/io.h>
int main( void )
{
DDRC=0X00;
DDRD=0XFF;
while( 1 )
{
if ( PINC == 0X08 ){
PORTD = 0x04; //<--- Aki le falto el ";"
}
else if( PINC == 0x04 ){
PORTD = 0x02;
}
else if( PINC == 0x02 ){
PORTD = 0x09;
}
else if( PINC == 0x01 ){
PORTD = 0x06;
}
else
PORTD=0x00;
}
}