Hi,
hab folgendes Problem.
Mit der Variable prog_modi soll die Betriebsart eingestellt werden, aber
der macht das nicht. Er beschreibt die Variable nicht, sie bleibt auf
dem initialisierten Wert.
Ich verwende C18 auf dem 18F45k20.
Kann das mit dem Uart zusammenhängen?
1 | while (1){
|
2 | // Programmzustand einstellen und RS232-Kommunikation
|
3 | RXinput = getChar();
|
4 | rx = RXinput;
|
5 |
|
6 | if ( rx != 0){
|
7 | LATD = rx;
|
8 | if(rx == 252)
|
9 | {
|
10 | putChar(prog_mode);
|
11 | }
|
12 | if(rx == 253)
|
13 | {
|
14 | prog_mode = 0;
|
15 | }
|
16 | if(rx == 254)
|
17 | {
|
18 | prog_mode = 1;
|
19 | }
|
20 | if(rx == 255)
|
21 | {
|
22 | prog_mode = 2;
|
23 | }
|
24 | if(rx < 252)
|
25 | {
|
26 | rs232 = rx;
|
27 | }
|
28 | }
|
29 |
|
30 | // Steuerung des Servos aus unterschiedlichen Quellen
|
31 | switch(prog_mode)
|
32 | {
|
33 | case 0: Impuls_Servo_var = schalter8;
|
34 | break;
|
35 | case 1: Impuls_Servo_var =(char)(ADC_Convert()*0.694);
|
36 | break;
|
37 | case 2: Impuls_Servo_var = rs232;
|
38 | break;
|
39 | default : break;
|
40 | }
|
41 |
|
42 | // Anzeige der Servo-Position/Geschwindigkeit auf Board-LEDs
|
43 | //LATD = Impuls_Servo_var;
|
44 | }
|
THX im Voraus