Das läst sich sehr leicht ohne besonderes Equip herausfinden indem man einfach einen langen Wait nimmt und dann einen IRQ auslöst.
Zb. Wait 10 und bei einem Pin-IRQ (Taster am Pin) eine LED an einem anderen Pin Toggelt.(Debounce nicht vergessen)
wie ist die oben genannte frage zu beantworten? ich denke ja bin mir aber nicht sicher ...
dankeschön
Das läst sich sehr leicht ohne besonderes Equip herausfinden indem man einfach einen langen Wait nimmt und dann einen IRQ auslöst.
Zb. Wait 10 und bei einem Pin-IRQ (Taster am Pin) eine LED an einem anderen Pin Toggelt.(Debounce nicht vergessen)
Gruß
Ratber
gut die frage hat sich eh erledigt das ichs nu ganz anders mach trotzdem danke....
nun hab ich ein anderes problem.
ich möchte 7 zeichen auswerten ->so aufgebaut:
"licht:1"
demnach muss ich 7 zeichen empfangen
da ich das rn128 funk board habe.... mache ich das mit
zahl is sowas wie ein überlauf das die schleife nicht ewig weiterläuft wenn nix kommt...(ja hätte auch ne for to next schleife nehmen können.Code:Do Zahl = Zahl + 1 Z = Inkey() If Z <> 0 Then Licht = Licht + Chr(z) If Len(licht) = 7 Or Zahl = 20 Then Exit Do Loop
dannach folgt das:
hier meckert er 4 mal...ka warum...Code:If Len(licht) = 7 Then Tempo = Mid(licht , 7 , 1) Modus = Val(tempo) Select Case Modus Case 0 'beide Modis aus Portb.6 = 0 Portb.7 = 0 Case 1 '2. Blinkmodus an Portb.6 = 1 Portb.7 = 0 Case 2 'Landelichter an Portb.6 = 0 Portb.7 = 1 Case 3 'beide Modis an Portb.6 = 1 Portb.7 = 1 End Select End If
dannCode:in der zeile: tempo=mid(lciht,7,1) der fehler : Error:46 Assignement error [Tempo: 0 MID(LICHT,7,1):200]Code:modus=val(tempo) der fehler : Error:46 Assignement error [MODUS: 0 VAL(TEMPO):200]der letzteCode:error:7 IF THEN expectet [158]
vor allem die letzten 2 versteh ich nicht....is ja alles da?!stört sich Bascom an dem select case darin???Code:error:123 END IF expectet
Ich sehe nicht wo du synchronisierst.
Wo willst du wissen wo Anfang und Ende ist ?
Ich würde es mit Startbit,Stopbit und am besten noch mit CRC-summe machen damit du weißt ob das "Telegramm" auch gültig ist.
Gruß
Ratber
hmm das is ja erst mal egal...ich will ja erst mal diese blöden fehler rausbekommen....dann kann ich den string noch überprüfen
Is denn "tempo" sicher als "string" definiert ?
Wär besser, du stellst den ganzen Code (aber unzensiert) da rein.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
ok..hier....das ganz lies noch einen temperatursensor aus..
Code:$regfile = "m128def.dat" ' Bei Mega 128 " $framesize = 60 $swstack = 60 $hwstack = 60 $crystal = 16000000 'Quarzfrequenz $baud = 19200 'Baudrate für Funkmodul $baud1 = 9600 'Baudrate für MAX Dim A As Single Dim B As Single Dim Z As Byte Dim Zahl As Single Dim Licht As String * 7 'Aus- und Eingänge Ddrb = &B11000000 'I2C Deklarationen Config Scl = Portd.0 Config Sda = Portd.1 Declare Function I2cstart() As Byte Declare Sub Ic2send(byval Databyte As Byte) As Byte Declare Sub Funtion I2creceive(byref Databyte As Byte) As Byte Declare Sub Sub I2cstop 'Deklaration abgeschlossen Config Pine.2 = Output Rdy_hostempfangsbereit Alias Porte.2 'Auf Low setzen wenn Empfangsbereit für Daten vom Funkmodul Config Pine.5 = Input Bsy_funkmodulsendebereit Alias Porte.5 'Ist Low wenn Funkmodul frei zum senden Open "com2:" For Binary As #2 'Ausgabe über zweite serielle Schnittstelle (MAX) Sound Portg.2 , 2000 , 800 'gibt einen langen Kontrollton aus Sound Portg.2 , 1000 , 600 'gibt einen kurzen Kontrollton aus Config Serialin = Buffered , Size = 120 Config Serialout = Buffered , Size = 120 Config Serialout1 = Buffered , Size = 120 Enable Interrupts ' --------------------------------------------------- Print "### Initalisierung erfolgreich abgeschlossen! ###" 'Kopfzeilen senden Print "### Dieses Programm wurde im Rahmen einer Facharbeit von Stefan Rau geschrieben. ###" Print "" Wait 1 Print "### Messung initalisieren... ###" Wait 1 'i2cstart Dim Device As Byte Dim Deviceread As Byte Dim Lowtemp As Byte Dim Hightemp As Byte Dim Value As Word '!!!!!!! I2cinit Device = 144 'Wenn alle Adressleitungen des 1621 auf GND sind. Deviceread = 145 '----------------------------------------------Hauptprogramm------------------------------------------------------------ B = 0 Do I2cstart I2cwbyte Device I2cwbyte &HEE 'Temperaturmessung anstoßen I2cstop I2cstart I2cwbyte Device I2cwbyte &HAA 'Temperaturmessung Lesekommando I2cstop I2cstart I2cwbyte Deviceread I2crbyte Lowtemp , Ack 'LSB holen I2crbyte Hightemp , Nack 'MSB holen I2cstop Value = Lowtemp * 10 If Hightemp = 128 Then Value = Value + 5 End If Print "Temp:" ; Value B = B + 1 If B = 15 Then Sound Portg.2 , 20 , 800 : B = 0 Waitms 500 'Pause bis zur nächsten Messung 'lichtmodus überprüfen Rdy_hostempfangsbereit = 0 'empfangsbereitschaft am Funkmodul herstellen Do Zahl = Zahl + 1 Z = Inkey() If Z <> 0 Then Licht = Licht + Chr(z) If Len(licht) = 7 Or Zahl = 20 Then Exit Do Loop If Len(licht) = 7 Then Tempo = Mid(licht , 7 , 1) Modus = Val(tempo) Select Case Modus Case 0 'beide Modis aus Portb.6 = 0 Portb.7 = 0 Case 1 '2. Blinkmodus an Portb.6 = 1 Portb.7 = 0 Case 2 'Landelichter an Portb.6 = 0 Portb.7 = 1 Case 3 'beide Modis an Portb.6 = 1 Portb.7 = 1 End Select End If 'lichtmodustest 'Portb.6 = 1 'Wait 5 'Portb.6 = 0 'Wait 5 'ende lichtmodustest Loop End
*grmpf*
Tempo, Modus: Diese beiden Seppeln hast du gleich gar nicht definiert, wohl, um nix falsch zu machen
Füg' das mal ein, und ein weiteres Weihnachtswunder wird geschehen
Das ist erstmal nur, damit Bascom nicht gar so verzweifelt ist.Code:Dim Tempo As String * 3 Dim Modus As Byte
Wenn's nicht funzt, reden wir weiter
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
oha....das war mein fehler.....das hatte ich schon mal drinne aber als es net funktionierte hab ich alles was ich geändert hatte wieder rausgelöscht....dann hab ich das wohl vergessen...dankeschön...
Lesezeichen