wo ist mein fehler? ich möchte die Tasterzustände an Porta abfragen und entsprechende Ergenisse an Portc schicken; Config Porta = Input config portc = output Dim X As Byte Warten: If Porta.1 = 1 Then Portc = 8 End If Goto Warten (das ganze läuft auf einem 90s8535) Danke
Die "aktuellen" Zustände werden im Register PINA ausgelesen. Nicht PORTA.
Also etwas if (PINA == 0x01){ mach_kafeemaschine_an(); } Beim avr-gcc gibt es da eine schöne funktion die nennt sich bit_is_set. Ich mache das dann immer so if (bit_is_set(PINA,7){ druck_die_lösungen_für_meinen_mathe2_schein(); :-((( } Vieleicht mal von Basic weg?
@dude porobiere mal das im simulator: prozessor und quarz festlegen, wenn nicht in der voreistellung : $regfile = "M323def.dat" Config Pina.1 = Input 'ein portpin festlegen, 'bei ganzen port portx 0 input Config Pinc.1 = Output 'dto Dim X As Byte Warten: If Pina.1 = 1 Then ' port A pin 1 auf high ? Set Pinc.1 ' wenn ja port C pin 1 auf high setzen Else ' aber wenn Schalter wieder aus, Reset Pinc.1 ' oder nie an, dann Port C pin 1 Low setzen End If Goto Warten gibt auch noch debounce zum entprellen und andere Programmiermöglichkeiten
Hi, man sollte vielleicht auch noch den internen Pullup aktivieren sonst bekommt man schnell undefinierte Zustaende ... sprich obwohl der schalter nicht geschlossen haste am Pin eine logische 0. Hier ist nochmal eine schoenes Internettutorial fuer Bascom http://www.rowalt.de/ mfg Dirk
@ Divison: >>Vieleicht mal von Basic weg? Wozu den Seitenhieb auf Basic? Den PORT/PIN-Fehler kann man in allen Programmiersprachen machen (auch im heiligen c). Die Pin-Direction muß man ebenfalls in allen Sprachen definieren und das Einschalten der Pull-Ups ist elektrisch und nicht sprachlich erforderlich. Für newbies ist eine ide halt deutlich einfacher als die Konsolen-tools vom gcc. Laß die Leut doch am Anfang "quick und dirty" programmieren, wenn der Speicher zu klein oder die Anforderungen zu groß werden, muß man ja eh' seine Programmierunmgebung überdenken. Und von IDE installieren bis zur blinkenden LED ist der Weg mit Bascom einfach leichter als mit gcc (und dazwischen gibt es sicher etliche weitere Compiler). grüsse leo9
Klingt doch alles schon sehr gut. Würde gern weg von Basom. Habe das mit Codevision und PonyProg auch schon probeiert. Krieg´s aber nicht hin? Das engli. Tutorial für Codevision ist zu hoch für mich. Jemand zu obigem Basom Problem mal einen "muster"-code für codevision. Und wie bekomme ich mein Hex-File für PonyProg. Danke.
@ Dude hier die Initialisierung der Ports für codevision. void main(void) { // Input/Output Ports initialization // Port A initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=P State1=P State2=P State3=P State4=P State5=P State6=P State7=P PORTA=0xFF; DDRA=0x00; // Port B initialization // Func0=Out Func1=Out Func2=Out Func3=Out Func4=Out Func5=Out Func6=Out Func7=Out // State0=0 State1=0 State2=0 State3=0 State4=0 State5=0 State6=0 State7=0 PORTB=0x00; DDRB=0xFF; while (1) { if (PINA.1 == 1) PORTB = 8; }; }
Hi dude hier auch noch mal das Gegenstück zur Initialisierung der Ports in BASCOM Config Portb = Output 'ganzer Port als output Config Portb = Input 'ganzer Port als Input Config Portb = &B00011000 'beides = Output=1,input=0 Portb = &B11100111 'PullUp Widerstände auf einzelne InputPins Portd = 255 'PullUp auf kompletten Port Abfrage einfach mit if Pinb.2 = 0 then ...... Sinnvoll ist hier auch die alias-Funktion zu verwenden, z. B.: Pin_jumper12 Alias Pind.2 dann muss im Code z. B. bei wechelseldem Layout der Schaltung nicht immer irgendein Port gesucht und geändert werden bzw. der Code ist dann selbstsprechend/besser lesbar. Änderungen müssen dann nur noch am Anfang des Programmes im Declarationsteil gemacht werden. Beispiel: .... $regfile = "2313def.dat" $crystal = 4000000 Config Watchdog = 1024 Config Portb = &B00011000 'Output=1=Pb3,Pb4 rest input=0 Portb = &B11100111 'PullUp Widerstände auf die Input-Pins Config Portd = Input Portd = 255 'PullUp Widerstände auf die Input-Pins Pin_melodie Alias Pinb.5 Pin_taster_aus Alias Pinb.2 Pin_taster_lr Alias Pind.6 Pin_jumper12 Alias Pind.2 Pin_jumper34 Alias Pind.3 Pin_jumper56 Alias Pind.4 Pin_jumper78 Alias Pind.5 Port_blaus Alias Portb.4 Port_schaltausgang Alias Portb.3 ...... mfg Kalle
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.