collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Piscar LED  (Lida 3128 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.649
    • 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.649
    • 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);
}

}