TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: avaunzaz en 29 de Abril de 2020, 15:41:21
-
Buen dia
estoy realizando el siguiente codigo donde: al oprimir el pulsado en el puertoA 5 al soltarlo activa la secuencia de led pero necesito que cada vez que lo pulse haga otra secuncia diferente. Un error que tengo es que al soltar solo me esta prendiendo el RB4 :/
Asi tengo por ahora el codigo.
// PIC16F628A Configuration Bit Settings
// 'C' source line config statements
// CONFIG
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include<PIC16f628A.h>//???
#define _XTAL_FREQ 4000000//???
int contador, estado;// Se crea Variable enteras
void recorrido_1()
{
int i,j;
for( i=0; i<8; i++ )
{
PORTB=PORTB>>1; //Se Desplaza el puerto B a la derecha una vez
__delay_ms(200);
}
}
int main()
{
TRISA = 0X00;
TRISB = 0X00;
CMCON = 0X07;
PORTA = 0X00;
PORTB = 0X00;
contador=0;
//estado=0;
do
{
if(PORTAbits.RA5==0)
{
__delay_ms(20);
if(PORTAbits.RA5==0)
{
__delay_ms(20);
contador=1;
}
}
if(PORTAbits.RA5==1)
{
__delay_ms(20);
if(PORTAbits.RA5==1 & contador==1)
{
recorrido_1();
}
}
//PORTBbits.RB7=estado;
//recorrido();
}while(1);
}