Mikropascal ist ein of Pascal bassierendes Programm zum porgrammieren von PIC. Dieses Programm hat die Funktion testbit. Bei Pics gibt es I/o Ports zum Beispiel PortB. wenn diese Ports auf eingang gestellt sind und es liegt ein Spannung von 5V an also ein High-Pegel müsste man eine 1 auslesen können ansonsten ein null. v := testbit(portb,6); aber die Programmzeile liefert keinen Wert zurück den ich dann verarbeiten kann. Das Programm sollte so aussehen wenn spannung an RB6 anliegt dann mach das wenn keine Spannung anliegt mach dieses. wenn jemand einen Link oder ein Programm hätte welches in Mikropascal geschrieben ist und welches das Problem gelöst hat könnte es mal bitte posten !!
Wie ist denn die Variablendeklaration von v ? In der nächsten Zeile steht doch If v then...! Kannst Du das nicht einfach posten, dann springt unsere Glaskugel nicht so schnell.
Das ist der gesamte Quelltext für ein Lauflicht. Wenn nun eine Spannung anliegt soll das Lauflicht anders ablaufen als wenn keine Spannung anliegt. program Lauflicht; var v : byte; //Variablen declaration var a : byte; procedure einstellung; // auslesen ob eine Spannung anliegt oder nicht begin v:=testbit(porta,2); end; begin trisb := 0; portb := 0; clearbit (trisa,0); clearbit (porta,0); clearbit (trisa,1); clearbit (porta,1); setbit (trisa,2); repeat //begin einer endlosschleife v:=0; einstellung; if v=0 then // Programmzweig begin a := 0; repeat setbit(portb,a); // Sschaltet LED's nacheinander ein delay_ms(248); clearbit (portb,a); a:=a+1; until a=8; setbit (porta,0); delay_ms(250); clearbit (porta,0); setbit (porta,1); delay_ms(250); clearbit (porta,1); end; if v=1 then begin a := 0; repeat setbit (portb,a); delay_ms(248); a := a+1; until a=8; setbit (porta,0); delay_ms(250); setbit (porta,1); delay_ms(250); clearbit(porta,1); delay_ms(250); clearbit(porta,0); delay_ms(250); repeat a:=a-1; clearbit(portb,a); delay_ms(248); until a=0; end; until 0=1; //ende der Endlosschleife end.
Dies ist die Beschribung zu diesen Befehl Prototype function TestBit(register, rbit : byte) : byte; Returns If the bit is set, returns 1, otherwise returns 0. Description Function tests if the bit rbit of register is set. If set, function returns 1, otherwise returns 0. Parameter rbit needs to be a variable or literal with value 0..7. See Predefined globals and constants for more information on register identifiers. This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. Requires Nothing. Example flag := TestBit(PORTE, 2); // 1 if RE2 is set, otherwise 0
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.