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