LusoRobótica - Robótica em Português
Electrónica => Electrónica Geral => Tópico iniciado por: Carlos.m.o.azevedo em 05 de Fevereiro de 2012, 01:27
-
Olá Pessoal...
Tou ainda a tentar por um led a piscar..
Fiz o seguinte codigo.. (Estou a utilizar o MPLAB para programar)
#include <p18f4431.h>
#define LED_1 PORTAbits.RA1
void main()
{
OSCCON = 0b01110011;
PORTA=0x00; //Apagar port A
TRISA=0xFF; //Definir todas as portas como Output
while(1){
LED_1 = 1; //Ligar LED
Delay10KTCYx (1200); //Delay de 1 seg
LED_1 = 0; //Desligar LED
Delay10KTCYx (1200); //Delay de 1 seg
}
}
Mas nao está a funcionar.. parece-me tudo bem... que está a faltar?
Obrigado :)
-
Costumas programar em AVR, certo? é que o setup das portas está correcto se for AVR. Para PIC é exactamente o contrário. A Microchip segue a nomenclatura de 0=Output e 1=Input, 0=O e 1=I.
É outra maneira... no fim, serve tudo p o mesmo.
Além disso, falta o setup dos FUSES.
E como estás na PORTA, vê lá se não tens que desabilitar os drivers das entradas Analógicas/Comparadores.
Já deste uma vista de olhos no meu manual de PIC, com exemplos práticos? está lá tudo explicado ;)
Olá Pessoal...
Tou ainda a tentar por um led a piscar..
Fiz o seguinte codigo.. (Estou a utilizar o MPLAB para programar)
#include <p18f4431.h>
#define LED_1 PORTAbits.RA1
void main()
{
OSCCON = 0b01110011;
PORTA=0x00; //Apagar port A
TRISA=0xFF; //Definir todas as portas como Output
while(1){
LED_1 = 1; //Ligar LED
Delay10KTCYx (1200); //Delay de 1 seg
LED_1 = 0; //Desligar LED
Delay10KTCYx (1200); //Delay de 1 seg
}
}
Mas nao está a funcionar.. parece-me tudo bem... que está a faltar?
Obrigado :)
-
Obrigado pessoal :) já pisca :)
Obrigado a todos..
O problema estava nums registos de configuração inicial que eu me tinha esquecido..
:)
obrigado
-
Já pisca assim ? TRISA=0xFF; ???
Como é possivel ?
-
Não, tive de alterar a configuração da porta.. passar a 0.. tinha definido como 1 por ignorância mesmo :)
Depois utilizei a porta C para nao ter problemas..
Utilizei este código:
// Configurações iniciais do PIC
#pragma romdata CONFIG1H = 0x300001
const rom unsigned char config1H = 0b00001001;
#pragma romdata CONFIG2L = 0x300002
const rom unsigned char config2L = 0b00011001;
#pragma romdata CONFIG2H = 0x300003
const rom unsigned char config2H = 0b00100000;
#pragma romdata CONFIG3H = 0x300005
const rom unsigned char config3H = 0b00000000;
#pragma romdata CONFIG4L = 0x300006
const rom unsigned char config4L = 0b10000000;
#include "p18f4431.h"
#include "delays.h"
#define LED_1 PORTCbits.RC7
#define LED_2 PORTCbits.RC6
#define LED_3 PORTCbits.RC5
#define LED_4 PORTCbits.RC4
#define LED_5 PORTDbits.RD3
/** D E C L A R A T I O N S *******************************************/
void main (void)
{
OSCCON = 0b01110011;
TRISC = 0; // PORTC output
TRISD = 0;
LED_1 = 0;
LED_2 = 0;
LED_3 = 0;
LED_4 = 0;
LED_5 = 0;
while (1)
{
LED_1 = ~LED_1;
Delay10KTCYx(700);
LED_1 = ~LED_1;
LED_2 = ~LED_2;
Delay10KTCYx(700);
LED_2 = ~LED_2;
LED_3 = ~LED_3;
Delay10KTCYx(700);
LED_3 = ~LED_3;
LED_4 = ~LED_4;
Delay10KTCYx(700);
LED_4 = ~LED_4;
LED_5 = ~LED_5;
Delay10KTCYx(700);
LED_5 = ~LED_5;
Delay10KTCYx(700);
LED_1 = ~LED_1;
LED_2 = ~LED_2;
LED_3 = ~LED_3;
LED_4 = ~LED_4;
LED_5 = ~LED_5;
Delay10KTCYx(700);
LED_1 = ~LED_1;
LED_5 = ~LED_5;
Delay10KTCYx(700);
LED_2 = ~LED_2;
LED_4 = ~LED_4;
Delay10KTCYx(700);
LED_3 = ~LED_3;
Delay10KTCYx(700);
LED_1 = ~LED_1;
LED_5 = ~LED_5;
Delay10KTCYx(700);
LED_2 = ~LED_2;
LED_4 = ~LED_4;
Delay10KTCYx(700);
LED_3 = ~LED_3;
Delay10KTCYx(700);
}
}