Hallo Forengemeinde,
ich starte gerade mit PIC Programmierung in C. Ich nutze den CCS
compiler und das 44-Pin Demoboard von Microchip mit dem 18F45K20. Will
ich über einen Taster (Pullup 10K) an RB0 einen externen Interrupt
nutzen, um eine LED an Port RD0 ausgeben, passiert mit dem nachfolgen
Code nichts. Ich habe schon verschiedenes probiert, aber komme nicht
weiter. Vielleicht fällt jemanden von Euch ja etwas am Code auf?
Oliver
1 | #include <18F45K20.h>
|
2 | #use delay(clock=1000000)
|
3 |
|
4 | #fuses INTRC_IO,NOFCMEN,NOIESO,NOPUT,BROWNOUT_NOSL,BORV20
|
5 | #fuses NOWDT,NOLVP,WDT32,NOMCLR,NOLPT1OSC,PBADEN,CCP2C1
|
6 | #fuses STVREN,NOLVP,NOXINST
|
7 | #fuses NOWRTB,NOWRTC,NOWRTD,NOWRT,NOEBTR
|
8 |
|
9 | #define LED PIN_D0
|
10 |
|
11 | #int_ext //Interrupt-Routine für RB0
|
12 |
|
13 | void LED_AUSGEBEN()
|
14 | {
|
15 | output_high(LED);
|
16 | delay_ms(500);
|
17 | }
|
18 |
|
19 | void main()
|
20 | {
|
21 | set_tris_d(0); //RD0 wird als Ausgang definiert
|
22 | set_tris_b(1); //RB0 wird als Eingang definiert
|
23 | setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
|
24 |
|
25 | ext_int_edge(L_TO_H); //steigende Flanke
|
26 | enable_interrupts(INT_EXT); //RB0 Interrupt wird aktiviert
|
27 | enable_interrupts(GLOBAL); //Globaler Interrupt wird aktiviert
|
28 |
|
29 | //output_high(LED);
|
30 | //delay_ms(100);
|
31 |
|
32 | while (1)
|
33 | {
|
34 | output_low(LED); //LED wird auf LOW gesetzt
|
35 | }
|
36 | }
|