Hallo Ich komm da nicht weiter. Ich will ne Fernbedienungsempfänger bauen. es Funst alles bestens, bis auf folgendes Problem ich muß 2 Leitungen (Pinc.5 + Pinc.4) zur selben Zeit an 1 Ausgang (Portc.1) schalten mein Code haut irgentwie nicht hin. Case 8 Portc.1 = Pinc.5 Portc.1 = Pinc.4 Waitms 200 Portc.0 = 0 Locate 1 , 10 Lcd "P9" Kann mir da jemand helfen? mfg reini
schreib mal genaum, was du willst... Wenn eine H und eine L ist, können irgendwie nicht beide auf den Ausgang gehen :-) In deinem Code bestimmt ausserdem nur PINC.4 den Zustand (ganz kurz auch mal PINC.5)
Hallo Also PinC.5 und PinC.4 sind High, PinC.1 ist Low. Am Gerät sind 2 Taster, die ich durch den Atmega 8 ersetzen will. Das Kabel C.5 kommt vom Gerät, geht zu Taster 1 und am Kabel C.1 zurück. Das Kabel C.4 kommt vom Gerät, geht zu Taster 2 und am Kabel C.1 zurück. Das Gerät erkennt mit Hilfe der 2 Taster nun 3 verschiedene Befehle, nämlich Taste 1 gedrücht, Taste 2 gedrückt und Taste 1 + 2 gleichzeitig gedrückt! Da ich nun beide Tasten ersetzen will habe ich eben Kabel C.5 an PinC.5, Kabel C.4 an PinC.4 und Kabel C.1 An PinC.1 des Atmega angeschlossen und wollte die 3 Schaltzustände mit dem Atmega machen. Es funst mit Befehl 1 oder 2 bestens, nur eben nicht mit 3 (also beide gedrückt). mfg reini
Ich kenne mich mit Bascom nicht aus, aber müsste es nicht so heißen: Case 8 Portc.1 = Pinc.5 + Pinc.4 Waitms 200 Portc.0 = 0 Locate 1 , 10 Lcd "P9"
Tatsache ist, dass es so nicht funktionieren ist. Und Tatsache ist, das wohl keiner versteht, was Du wirklich willst. Eine Skizze wäre da sehr hilfrei.
1 | Also PinC.5 und PinC.4 sind High, PinC.1 ist Low. Am Gerät sind 2 |
2 | Taster, die ich durch den Atmega 8 ersetzen will. Das Kabel C.5 kommt |
3 | vom Gerät, geht zu Taster 1 und am Kabel C.1 zurück. Das Kabel C.4 kommt |
4 | vom Gerät, geht zu Taster 2 und am Kabel C.1 zurück. Das Gerät erkennt |
5 | mit Hilfe der 2 Taster nun 3 verschiedene Befehle, nämlich Taste 1 |
6 | gedrücht, Taste 2 gedrückt und Taste 1 + 2 gleichzeitig gedrückt! Da ich |
7 | nun beide Tasten ersetzen will habe ich eben Kabel C.5 an PinC.5, Kabel |
8 | C.4 an PinC.4 und Kabel C.1 An PinC.1 des Atmega angeschlossen und |
9 | wollte die 3 Schaltzustände mit dem Atmega machen. Es funst mit Befehl 1 |
10 | oder 2 bestens, nur eben nicht mit 3 (also beide gedrückt). |
Mein Text2Schematic Konverter ist gerade abgestürzt... :( Auf dieselbe Fläche passt locker ein Bild mit dem Schaltplan. Das ist das anerkannte Kommunikationmittel unter Elektronikern. Mein Vorschlag: Mal ein Bild, mach ein Foto und poste das. Dann wird dir geholfen.
Ich denke Du betrachtest die Schaltung verkehrt herum. Meiner Meinung nach kommt der High-Pegel (oder Low, je nachdem) vom Kabel C.1 und wird über die Taster an die Kabel C.4 und C.5 gegeben. Nur auf diese Weise können 3 Schaltzustände erkannt werden. Nach Deiner Ansicht, dass das Kabel C.1 der Eingang (am Gerät) ist, hast Du die beiden Tasten einfach ODER-verknüpft. Die ATmega-Pins C4 und C5 müssen also Ausgänge sein und nicht Eingänge. Also in etwa so sollte es funktionieren:
1 | Ddrc = &B11111100 |
2 | 'PortC.0 = Eingang , PortC.1 = Eingang , PortC.2 - PortC.7 = Ausgänge |
3 | |
4 | |
5 | Portc = &B00000011 |
6 | 'Pullup-Widerstände an den Eingängen aktivieren für Taster die nach Masse schalten |
7 | 'Ausgänge auf L setzen |
8 | |
9 | Main: |
10 | |
11 | If Pinc.0 = 0 Then |
12 | Set Portc.4 |
13 | Else |
14 | Reset Portc.4 |
15 | End If |
16 | |
17 | If Pinc.1 = 0 Then |
18 | Set Portc.5 |
19 | Else |
20 | Reset Portb.1 |
21 | End If |
22 | |
23 | |
24 | Goto Main |
Auf diese Weise sind die Ausgänge High solange die Taster gedrückt sind. Um den dritten Schaltzustand musst Du Dir auch keine Gedanken machen. Das funktioniert quasi nebenbei. Jürgen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.