Ik probeer met de PIC16f628A een 4*20 characters LCD aan te sturen.
Ik gebruik MPLAB met Hi-Tech C-compiler en wil de laagste 4 bits van PORTA als output definiëren voor data en 2 bits van PORTB voor controle. Lijkt in eerste instantie vrij eenvoudig, toch lukt het me niet. Om het te controleren hebt ik de LCD vervangen door ledjes en blijkt dat RA3 (de hoogste van de 4 data bits) niet reageert, ik heb het vermoeden dat die in 3-state staat of als ingang.
Ik heb geen idee wat dat aan kan liggen, ik vermoed dat er ergens nog een setting mis is maar welke???
Hier het test programma om de leds aan te sturen, lijkt heel triviaal.
Ik gebruik MPLAB met Hi-Tech C-compiler en wil de laagste 4 bits van PORTA als output definiëren voor data en 2 bits van PORTB voor controle. Lijkt in eerste instantie vrij eenvoudig, toch lukt het me niet. Om het te controleren hebt ik de LCD vervangen door ledjes en blijkt dat RA3 (de hoogste van de 4 data bits) niet reageert, ik heb het vermoeden dat die in 3-state staat of als ingang.
Ik heb geen idee wat dat aan kan liggen, ik vermoed dat er ergens nog een setting mis is maar welke???
Hier het test programma om de leds aan te sturen, lijkt heel triviaal.
C: test-led
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include <htc.h> //__CONFIG(XT & WDTDIS & PWRTDIS & BORDIS & UNPROTECT & LVPDIS); __CONFIG(0x3D29); void init(void) { CMCON = 0x07; // Disable analog comparator TRISA = 0x00; // All bits as output } // Delay loop void delay(int d) { for (int i=0; i < d; i++) { _delay(100000); } } void main(void) { init(); while (1){ PORTA = 0x0F; //RA0..RA2 worden '1' maar RA3 blijft '0' delay(5); PORTA = 0x00; delay(5); } } |