PIC16F873A Ayuda :S
Publicado por Marcelo (1 intervención) el 05/07/2010 22:54:07
Hola estamos trabajando en un pic 16f873a para el desarrollo de autito pero estamos pegados en el tema de interrupciones, debido a que este tendra una sensores de choques.
La idea es que a travez del puerto PORTA.0 y .1 debemos manejar el choque para que cambie el trayecto nuestro autito ahora tenemos configurado que el TRISA de entrada ahi estamos pegados.
Saludos
#include "int16Cxx.H"
#pragma origin 4
interrupt servidor_de_int(void){
int_save_registers //W, STATUS (and PCLATH)
/* if(INTF){
if(PORTA.0==0 || PORTA.1==0) {
PORTB.4=0; //4 y 5 motor1
PORTB.5=1;
// PORTB.7=1; //6 y 7 motor2
// PORTB.6=0;
}
else{
PORTB.7=0;
// PORTB.4=0;
}
INTF=0; //reset del flag int TMR0
}
int_restore_registers //W, status (and PCLATH)
}
void main()
{
// Configuración de los bit del puerto C
TRISB=0x00; // Todos los bit de salida
TRISC=0x00;
TRISA.1=1;
TRISA.0=1;
PORTC.1=1;
PORTC.2=1;
PORTB.4=0; //4 y 5 motor1
PORTB.5=1;
PORTB.7=1; //6 y 7 motor2
PORTB.6=0;
// PORTA.0=0;
// PORTA.1=0;
OPTION.6=1;
INTCON.4=1;
GIE=1;
while(1){
// if(PORTA.0==1 || PORTA.1==1)
// {
// PORTB.7=0;
// PORTB.5=0;
// }
}
// while(1) // Ciclo forever
// {
// if(PORTB.7==0 && PORTB.5==0){
// PORTB.7=1;
// PORTB.5=1;
//
// }
// else PORTB.7=0;
// }
}*/
La idea es que a travez del puerto PORTA.0 y .1 debemos manejar el choque para que cambie el trayecto nuestro autito ahora tenemos configurado que el TRISA de entrada ahi estamos pegados.
Saludos
#include "int16Cxx.H"
#pragma origin 4
interrupt servidor_de_int(void){
int_save_registers //W, STATUS (and PCLATH)
/* if(INTF){
if(PORTA.0==0 || PORTA.1==0) {
PORTB.4=0; //4 y 5 motor1
PORTB.5=1;
// PORTB.7=1; //6 y 7 motor2
// PORTB.6=0;
}
else{
PORTB.7=0;
// PORTB.4=0;
}
INTF=0; //reset del flag int TMR0
}
int_restore_registers //W, status (and PCLATH)
}
void main()
{
// Configuración de los bit del puerto C
TRISB=0x00; // Todos los bit de salida
TRISC=0x00;
TRISA.1=1;
TRISA.0=1;
PORTC.1=1;
PORTC.2=1;
PORTB.4=0; //4 y 5 motor1
PORTB.5=1;
PORTB.7=1; //6 y 7 motor2
PORTB.6=0;
// PORTA.0=0;
// PORTA.1=0;
OPTION.6=1;
INTCON.4=1;
GIE=1;
while(1){
// if(PORTA.0==1 || PORTA.1==1)
// {
// PORTB.7=0;
// PORTB.5=0;
// }
}
// while(1) // Ciclo forever
// {
// if(PORTB.7==0 && PORTB.5==0){
// PORTB.7=1;
// PORTB.5=1;
//
// }
// else PORTB.7=0;
// }
}*/
Valora esta pregunta
0