PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PORT-Richtung



hardware.bas
21.12.2010, 17:31
Gibt es eine Möglichkeit bei der C-Control Station I V2.0 innerhalb des
Programmablaufes PORTs oder auch BYTEPORTs zwischen Eingang,
Ausgang und hochohmig hin und herzuschalten?
Programmiert wird in BASIC++. VG Micha

hardware.bas
23.12.2010, 06:12
Hab gerade den DEACT-Befehl recherchiert, der den PORT wieder auf
Eingang zurückschalten soll, nach dem durch Wertezuweisung auf
Ausgang geschaltet wurde. In einem CControl-Forum gabs dazu
etwas widersprüchliche Aussagen dazu. Ich werde in den nächsten Tagen
das mal ausprobieren und die POERTs der CControl so durchmessen,
ob die Aussage auch stimmt. Vielleicht weiss trotzdem jemand da
etwas genaueres . VG Micha

Richard
23.12.2010, 07:13
Gibt es eine Möglichkeit bei der C-Control Station I V2.0 innerhalb des
Programmablaufes PORTs oder auch BYTEPORTs zwischen Eingang,
Ausgang und hochohmig hin und herzuschalten?
Programmiert wird in BASIC++. VG Micha

Was ein compiler "dazu sagt"? Aber mit inline ASM und Zugriff auf das DDR Register sollte es klappen.

Gruß Richard

hardware.bas
23.12.2010, 15:05
ASM... leider kein Thema für mich. VG Micha

Richard
23.12.2010, 16:13
ASM... leider kein Thema für mich. VG Micha

Möglich das so etwas auch per Basic im Direckt zugriff auf DDR(x) geht, habe ich aber nicht ausprobiert. Das Problem dabei, ich weiß nicht was der Compiler damit anstellt.
Aber ein ddr(x) or %0001000 austesten macht nix kaputt. Die "1" dann natürlich an die richtige Stelle! im Text habe ich diese willkürlich gewählt.

In ASM dürfte der (dieser) kurze Befehl sogar identisch aussehen?

Gruß Richard

hardware.bas
23.12.2010, 16:28
Wie gesagt, ASM wurde uns in der Meisterschule mal kurz versucht
zu erklären, danach jedoch kollektiv abgebrochen, keiner hats
begriffen, keiner hats gebraucht. Aber egal. der DDR Befehr ist mir
jedoch ein Begriff. Nutze ich fast tagtäglich mit BASCOM beim AVR.
Hier bei der C-Control programmiere ich jedoch im BASIC++.
VG Micha

Richard
23.12.2010, 16:53
Wie gesagt, ASM wurde uns in der Meisterschule mal kurz versucht
zu erklären, danach jedoch kollektiv abgebrochen, keiner hats
begriffen, keiner hats gebraucht. Aber egal. der DDR Befehr ist mir
jedoch ein Begriff. Nutze ich fast tagtäglich mit BASCOM beim AVR.
Hier bei der C-Control programmiere ich jedoch im BASIC++.
VG Micha

Ist doch OK. :-) Aber auch in BASIC ++ müssen Register "bearbeitet" werden, wenn es (anscheinend) keinen DDR Befehl gibt wird das dort anscheinend anders genannt. Aber Register Operationen/Manipulationen sollte es auch in BASIC ++ geben. Zur Not halt über die realen Hardware Adresse des Registers welche sich im Datenblatt des µC finden sollte.

Irgend einen Weg (Umweg) findet sich eigentlich IMMER. :-) Ich hatte einmal ein recht eures Modul mit "Eingebauten Basic" natürlich war der Chip lese geschützt. Also habe ich IM eingebauten basic die internen Speicherstellen ausgelesen und per RS232 in eine BIN Datei geschrieben. Diese in ein passendes Epromm und TataTataTata BINGO die geschützte Firmware lief eins A....

Hartnäckigkeit und etwas Hirnschmalz halt. :-)

Gruß Richard

Dierk
23.12.2010, 21:33
Es kommt darauf an wie der Port das erste mal angesprochen wird.

Auf Port schreiben, dann wird der Port ein Ausgang.
Vom Port lesen, dann wird der Port ein Eingang.
Wenn der Port allerdings die Richtung zu Input ändern soll, dann muss zuvor ein DEACT aufgerufen werden.


Also bspweise:

Define Port1 as Port[1]
Define x as bit

' Port als Ausgang
Port1=true
Port1=false

' Port als Eingang
deact Port1
x=Port1
Print Port1

hardware.bas
30.12.2010, 10:05
So..... ich habe gestern die bedarfsgerechte Portumschaltung mit einem
Byteport ausprobiert. Es verhält sich so, wie angenommen.
Beispiel Byteport heisst "communication":
communication = variable; Port ist AUSGANG
variable = communication; Abfrage ist natürlich auch möglich
deact communication; Port ist EINGANG
variable = communication; Abfrage - hier machts einen Sinn
Bei offenem EINGANG sind alle Eingänge wegen der eingebauten
PullUps auf High (255).
Und das Ganze ist beliebig oft hin und her schaltbar.
VG Micha