Gast
#3531069
Hallo liebe Leute, ich bin relativer Anfänger in der Welt der Microcontroller. Zur Übung wollte ich mit meinem kleinen Board eine Entfernungsmessung mit einem HC-SR04 Board durchführen. Die Idee war folgende. Der Triggereingang des Moduls ist mit PA4 verbunden. Wird nun der Taster S1 betätigt, wird ein Interrupt (INT1) ausgelöst, dass den triggereingang zunächst auf L und anschließend auf H setzt. Das löst die Messung aus und das Modul setzt den Echo Ausgang (verbunden mit PD2) auf H-Pegel. Dies soll nun einen Interrupt (INT0) auslösen der den Timer 0 startet. der Timer 0 soll die Zeit zählen bis das Echo detektiert wurde und die Zeit in ms ersteinmal in einer Variable abspeichern. Nach empfang des Echos fällt der Echoausgang wieder auf L, löst erneut die ISR(Int0) aus und der Timer wird gestoppt. Soweit erstmal. Nun habe ich Testweise nach jeder "Stufe" eine LED an PortB leuchten lassen. Es scheint so als ob die ISR(INT1) normal durchläuft, der Timer gestartet aber nicht mehr gestoppt wird. Ich konnte schon ein paar Fehler erkennen, bin mittlerweile aber womöglich blind für meinen eigenen Code und komme einfach nicht auf meinen Fehler, daher wäre es nett wenn ihr euch den Code vlt mal anschauen könntet. Ich weiß, dass der derzeitige Code nicht wirklich eine großartige Funktion hat und das es womöglich noch andere Wege gibt, ich möchte aber erstmal nur einen Vernünftigen Betrieb des Moduls hinbekommen auf die von mir angedachte weise (da ähnliches auch in der Schule verlangt wird). Im Anhang befindet sich der Schaltplan für das von mir verwendete Board. Hier der Quelltext: ----------------------------------------------------------------
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 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
