Página 1 de 1

Iniciante, não consigo fazer LED piscar

MensagemEnviado: 19 Jan 2011 23:10
por Emilio Eduardo
Boa noite pessoal,

Estou iniciando nos microcontroladores e portanto ainda estou nos circuitos básicos. Decidi por usar mikroC pois me parece uma alternativa fácil de aprender e também migrar para outros micros.

O meu primeiro projeto consiste em fazer um LED piscar usando um PIC 16F688 com encapsulamento PDIP e uma protoboard. Como alimentação estou utilizando uma fonte de computador.

Fiz o seguinte esquema:

Pino 1 : Vermelho (5v)
Pino 14 : Preto (GND)
Pinos 2 a 13 -> Resistor -> LED -> GND

E utilizei o seguinte código para mikroC:

Código: Selecionar todos
void main() {

  ANSEL  = 0;            // Configure AN pins as digital
  CMCON0 = 0;          // Disable comparators

  TRISA = 0x00;          // set direction to be output
  TRISC = 0x00;          // set direction to be output
 
  do {
    PORTA = 0x00;        // Turn OFF LEDs on PORTA
    PORTC = 0x00;        // Turn OFF LEDs on PORTC
    Delay_ms(1000);      // 1 second delay
   
    PORTA = 0xFF;        // Turn ON LEDs on PORTA
    PORTC = 0xFF;        // Turn ON LEDs on PORTC
    Delay_ms(1000);      // 1 second delay
  } while(1);            // Endless loop
}


Compilei ele para o PIC desejado por meio do build da propria IDE usando as seguintes configurações de projeto:
Device: P16F688
Frequency: 8Mhz
Build Type: Release

Com todos os Fuses off:

Código: Selecionar todos
Oscillator : HS
Watchdog Timer: Off
Power Up Timer: Off
Master Clear Enable: Disabled
Code Protect: Off
Data EE Read Protect: Off
Brown Out Detect: BOD and SBOREN disabled
Internal External Switch Over Mode: Disabled
Monitor Clock Fail-safe: Disabled


Com o arquivo exportado, o programa PICPgm Programmer e o gravador PIC burner, iniciei a gravação.

Quando selecionei o arquivo .hex ele me deu a mensagem dizendo que o arquivo não tinha os bits de configuração dos fuses. Tudo bem, fiz isso manualmente. Mandei gravar e verificar e tudo bem, estava lá, tudo bonitinho.

Porém.. Quando coloquei o chip na proto e liguei, simplesmente não funcionou. Na prática liguei somente um LED e um resistor e fui checando as portas, nenhuma estava ligando, exceto o pino 3 que dava ao led uma intensidade menor do que quando ligado somente com o resistor aos 5v.

Aí fica minha duvida, onde está o problema? Como o microcontrolador não debuga, fica muito difícil saber o que acontece. O pino três dando uma intensidade menor me dá o sentimento de que ele está "exportando" o clock.. Mas não faço ideia!

Espero que alguém possa me ajudar!

Atenciosamente,
Emilio Eduardo

MensagemEnviado: 20 Jan 2011 01:13
por _blackmore_
colocou o cristal oscilador com os devidos capacitores? pelo codigo mostra oscillator HS ... mas no "esquema" não fala de oscilador, os leds nao estao invertidos?
o master clear esta ativado ou nao? se estiver ativado, ligue ele atraves de um resistor de 10k ao +5V.
outra dica .. é simular teu firmware no proteus ... se funcionar lá é muito provável que funcione quando vc montar na placa, sem falar q fica mais prático e dinâmico o estudo.

MensagemEnviado: 20 Jan 2011 10:34
por Emilio Eduardo
Boas Novas!

Realmente eu não tinha acionado o oscilador interno, foi só reconfigurar e voilá, tudo funcionou!!

Hoje vou tentar fazer um contador com um display de 7 segmentos, depois conto como foi a experiencia!

Muito Obrigado pela ajuda,
Emilio Eduardo