Hallo Elektronikfreunde, es ist mal wieder zum Heulen ;-)
Ich habe einen PIC16F627A, an dem eine LED hängt, die PWMed wird, das
klappt alles wunderbar. Nun möchte ich über RS232 einen neuen DC-Wert an
den PIC senden. Also 255: LED voll an, 0: LED komplett aus, 127:
dazwischen, etc. Ihr wisst waws ich meine.
Das PWM-Modul und die USART habe ich so initialisiert (ich nutze ein
externes 4.194304MHz Quarz, hatte leider nichts ander4es herumliegen):
1 | // PWM:
|
2 | PR2 = 0xff;
|
3 | TRISB3 = 0;
|
4 | T2CON = 0b100; // 1:1 prescaler timer1
|
5 | CCP1CON = 0b1100; // set CCP to PWM mode
|
6 | CCPR1L = 0; // DC = 0
|
7 |
|
8 | // USART:
|
9 | SPBRG = 63; // Formel: BAUD = F_OSC / 64 / (SPBRG + 1)
|
10 | SYNC = 0;
|
11 | SPEN = 1;
|
12 | RCIE = 1;
|
13 | CPEN = 1;
|
14 | PEIE = 1;
|
15 | GIE = 1;
|
Das gibt mir eine Baud-Rate von 1024. Im HTerm habe ich dann
eingestellt: COM1 (gecheckt, der stimmt), Baud 1024, Data 8, Stop 2,
Parity None, CTS Flow Control = 0.
Meine ISR sieht so aus:
1 | static void interrupt isr () {
|
2 |
|
3 | if (RCIF) {
|
4 | value = RCREG;
|
5 | CCPR1L = value;
|
6 | CREN = 0;
|
7 | CREN = 1;
|
8 | }
|
9 |
|
10 | }
|
Aber der PIC zeigt keierlei Reaktion. Es kommt nichts an, ist im
Quellcode ein offensichtlicher Patzer?
Vielen Dank schon einmal für die Hilfe,
Gute nacht,
Jens