Gast
#1144449
Hi Leute. Mein Chef hat mir ein selbstgebastelten Multiplexer in die Hand gedrückt und mir nahegelegt, eine eigentlich simple Aufgabe damit zu programmieren. Die Aufgabe: Nach Tastendruck verschiedene LED's für 400 ms zum leuchten bringen, anschliessend LED's ausschalten und warten, bis eine Taste gedrückt wurden. Diese Aufgabe habe ich auch hinbekommen, indem ich einfach nur LED_ON(x) delay_ms(400) LED_OFF(x) delay(400) (x steht für verschiedene LED :-) in C geschrieben habe. Nun möchte ich aber jeweils die Zeit mit ausgeben, wann welche LED aufgeleutet hat. also z.B. Zeit : 0 LED1 Zeit : 800 LED2 Zeit : 1600 LED3 ... Ich habe versucht, mich in Interrupts und timer einzulesen, allerdings verstehe ich das nicht...bin so langsam verzweifelt und suche um Rat. Hier ein Code für die Interrupts, das ich irgendwo gefunden habe und versucht habe, das zu modifizieren. Nach Tastendruck einfach mal eine gewisse Zeit (hier anfangs 50*20 = 1000us = 1 ms) warten und dann diese Zeit ausgeben. anschliessend wird i incrementiert sodass beim nächsten mal 51*20 us gewartet wird usw... Damit wollte ich nur testen, was für eine Zeit die Variable time ausgibt.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
Leider gibt mir dieser Code nicht das zurück, was ich erwartet habe. Kann mir jemand sagen, wie ich das hinbekomme, oder ob das überhaupt geht und kann mir evtl. jemand dann ein Code zeigen, wie das realisierbar ist? Ich habe leider kein Datasheet oder so ähnliches, auf dem Chip steht aber PIC16F876 - SP/20 Der Compiler ist CCS S. Vielen Dank im Voraus. Gruß Walter