Hallo miteinander,
ich habe da so eine Frage...
Ich habe mir ein kleines "PIC-Entwiklungsboard gebastelt" hatt ein paar
Schalter und LEDs und ein LCD-Display
Das Board funktioniert soweit ich es bis jetzt testen konnte (habe ein
kleine Lauflicht gemacht) einwandfrei.
Ich habe dann versucht ein Programm zu schreiben welches eigentlich nur
kleine Funktion haben sollte:
Wenn ich auf den 1. Taster dann sollte die 1. LED leuchten und wenn ich
loslasse dann sollte die LED wider ausgehen, und das für vier Taster und
4 LEDs. Kurz zur Hardeware:
Die LEDs sind (Über Vorwidersstände)an den Ports:
RA0 2 LED1
RA1 3 LED2
RA2 4 LED3
RA3 5 LED4
Die Taster (gehen auf Versorgungsspannung +) habe ich über Pulldown
(Widerstand von Port nach Masse (4,7k)) an den Ports:
RA4 6 Taster 1
RA5 7 Taster 2
RC1 16 Taster 3
RC2 17 Taster 4
angeschlossen.
Als PIV verwende ich den PIC18F4550
Ich habe eine stabile 5V Versorgung und einen 20MHz Quarz angeschlossen.
Nun zum Programm welches meiner Ansicht nach nicht Funktioniert:
1 | /** I N C L U D E S **********************************************************/
|
2 | #include <p18cxxx.h>
|
3 |
|
4 |
|
5 | /** Configuration ********************************************************/
|
6 | #pragma config FOSC = HS //CPU=20 MHz
|
7 | #pragma config PWRT = ON
|
8 | #pragma config BOR = OFF
|
9 | #pragma config WDT = OFF //Watchdog Timer
|
10 | #pragma config LVP = OFF //Low Voltage ICSP
|
11 |
|
12 | /*
|
13 | #define led1 LATAbits.LATA0
|
14 | #define led2 LATAbits.LATA1
|
15 | #define led3 LATAbits.LATA2
|
16 | #define led4 LATAbits.LATA3
|
17 | */
|
18 | #define led1 PORTAbits.RA0
|
19 | #define led2 PORTAbits.RA1
|
20 | #define led3 PORTAbits.RA2
|
21 | #define led4 PORTAbits.RA3
|
22 | #define taster1 PORTAbits.RA4
|
23 | #define taster2 PORTAbits.RA5
|
24 | #define taster3 PORTCbits.RC1
|
25 | #define taster4 PORTCbits.RC2
|
26 |
|
27 | /** D E C L A R A T I O N S **************************************************/
|
28 | #pragma code
|
29 |
|
30 | void main(void)
|
31 | {
|
32 | while(1)
|
33 | {
|
34 | if (taster1 == 1) {
|
35 | led1 = 1;
|
36 | } else {
|
37 | led1 = 0;
|
38 | }
|
39 | if (taster2 == 1) {
|
40 | led2 = 1;
|
41 | } else {
|
42 | led2 = 0;
|
43 | }
|
44 | if (taster3 == 1) {
|
45 | led3 = 1;
|
46 | } else {
|
47 | led3 = 0;
|
48 | }
|
49 | if (taster4 == 1) {
|
50 | led4 = 1;
|
51 | } else {
|
52 | led4 = 0;
|
53 | }
|
54 | }//end while
|
55 | }//end main
|
Meine Vermutung ist das ich die Ports falsch definiere, meine das Port
zu einem Ausgang oder Eingang "umwandeln".
Ich hoffe es kann mir bitte Jemand Helfen
Wäre auch sehr Dankbar wenn mir jemand sagen kann wo ich ein Gutes Forum
für den Microchip C18 Compiler finden kann, habe auch schon die Sprut
Homepage durchgelesen und Versucht zu verstehen (Programmiere aber
keinen Assembler)
Grüße
Lukas