Hallo zusammen
Ich beschäftige mich seit gestern mit dem PIC12F683, da mein Standard-uC
für das aktuelle Projekt zu gross ist. Der PIC läuft jetzt mit einem
20MHz Crystal, das funktioniert auch. LED an GP2 kann ich blinken
lassen, an GP1 ist auch eine LED. Zu Versuchszwecken habe ich jetzt
folgenden Code:
1 | #include "main.h"
|
2 | #include <xc.h>
|
3 | #include <pic12f683.h>
|
4 | #include <stdlib.h>
|
5 | #include <stdio.h>
|
6 |
|
7 | #pragma config FOSC = HS
|
8 | #pragma config WDTE = ON
|
9 | #pragma config PWRTE = OFF
|
10 | #pragma config MCLRE = OFF
|
11 | #pragma config CP = ON
|
12 | #pragma config CPD = ON
|
13 | #pragma config BOREN = ON
|
14 | #pragma config IESO = OFF
|
15 | #pragma config FCMEN = OFF
|
16 |
|
17 | #define _XTAL_FREQ 20000000
|
18 | #define LED1 GPIObits.GP1
|
19 | #define LED2 GPIObits.GP2
|
20 |
|
21 | void main(void) {
|
22 |
|
23 | CMCON0 = 0b00000111;
|
24 | GPIO = 0;
|
25 | ANSEL = 0;
|
26 | TRISIObits.TRISIO0 = 0;
|
27 | TRISIObits.TRISIO1 = 0;
|
28 | TRISIObits.TRISIO2 = 0;
|
29 | TRISIObits.TRISIO3 = 1;
|
30 |
|
31 | LED1 = 1;
|
32 | LED2 = 1;
|
33 |
|
34 | while(1){
|
35 | CLRWDT();
|
36 | }
|
37 | }
|
Wenn ich das jetzt so programmiere, leuchtet nur die LED an GP2.
Kommentiere ich den Befehl "CLRWDT()" aus, leuchtet am Anfang nur die
LED an GP2 und 2 Sekunden später auch die LED an GP1.
Ich finde einfach nicht heraus warum das so ist. Kann man jemand helfen?
Besten Dank und Gruss, Henner