Hallo geschätze Forumsmitglieder,
ich brauche Hilfe mit meinem Programm...Es soll auf einem MK2 Board mit
Atmega8 laufen.
Ich wollte mit 2 Potentiometern Aus und Notaus realisieren.
Wenn diese beiden nicht betätigt sind, sollen die Leds leuchten.
Das funktioniert auch. wenn ich einen der Potis schalte, gehen die Leds
jedoch nicht aus. Erst über einen Reset..
D.h. es findet keine permanente Abfrage der Zustände von Pinb.1 und
Pinb.2 statt.
Was muss ich tun damit die Leds ausgehen wenn ich einer der Potis eine
"1" hat.
Ich danke vielmals. (Und meine C-Kenntnisse sind eher schlecht...)
Der Code:
1 | //------------------------------
|
2 |
|
3 | #define F_CPU 3686400
|
4 | #include <avr/io.h>
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | uint8_t Ausgang_schalten = 0;
|
10 |
|
11 |
|
12 |
|
13 | void AUS_pruefen (void)
|
14 | {
|
15 | if ( (!(PINB & 0x02))&&(!(PINB & 0x04)) ) //PinB.1 Aus und PinB.2 NotAus (beide Poti), müssen über "&&" verknüpft da in Reihe
|
16 | Ausgang_schalten=1;
|
17 | else
|
18 | Ausgang_schalten=0;
|
19 | }
|
20 |
|
21 |
|
22 | void Ausgabe (void)
|
23 | {
|
24 | AUS_pruefen();
|
25 | if (Ausgang_schalten==1) //Bedingung prüfen für Aus/NotAus, wenn "1" Aus/NotAus nicht gedrückt
|
26 | PORTC = (1<<0)|(1<<1); // C.0 und C.1 ansteuern für Ausgabe
|
27 | else
|
28 | PORTC = 0;
|
29 | }
|
30 |
|
31 |
|
32 |
|
33 | int main()
|
34 | {
|
35 |
|
36 | DDRC = 0xFF; // Ausgänge
|
37 | DDRB = 0x00; // Eingänge
|
38 | //PORTB = 0b00000001; // Pull up für B.0 (Ein Taster noch nicht verwendet)
|
39 |
|
40 | while (1)
|
41 | {
|
42 |
|
43 | Ausgabe();
|
44 |
|
45 | return 0;
|
46 | }
|
47 | }
|