mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 16F628A + mikropascal+ Testbit


Autor: user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 !!

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was liefert die Programmzeile denn?

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.