collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por Hugu
[Hoje às 02:48]


Editor online de imagens p/ distorcer imagens trapezoidais p/ rectangulo? por Hugu
[Hoje às 01:26]


[Projecto] Bomba Airsoft por SrMorte
[Ontem às 23:51]


Apresentação por SrMorte
[Ontem às 22:32]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]

Autor Tópico: Piscar LED  (Lida 1536 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Carlos.m.o.azevedo

  • Visitante
Piscar LED
« 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)


Código: [Seleccione]
#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 :)
« Última modificação: 05 de Fevereiro de 2012, 13:07 por TigPT »

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re: Piscar LED
« Responder #1 em: 05 de Fevereiro de 2012, 13:13 »
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)


Código: [Seleccione]
#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 :)

Carlos.m.o.azevedo

  • Visitante
Re: Piscar LED
« Responder #2 em: 08 de Fevereiro de 2012, 22:09 »
Obrigado pessoal :) já pisca :)

Obrigado a todos..

O problema estava nums registos de configuração inicial que eu me tinha esquecido..

:)
obrigado
« Última modificação: 08 de Fevereiro de 2012, 22:12 por Carlos.m.o.azevedo »

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re: Piscar LED
« Responder #3 em: 08 de Fevereiro de 2012, 22:25 »
Já pisca assim ?  TRISA=0xFF; ???

Como é possivel ?

Carlos.m.o.azevedo

  • Visitante
Re: Piscar LED
« Responder #4 em: 08 de Fevereiro de 2012, 22:32 »
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:

Código: [Seleccione]
// 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);
}

}