Projekt
Hardware
Bedienung
Kompatibilität
Erweiterungen
Programme




AX81b: Erweiterungen



1 IO-Erweiterung

Ab Version 1.32 kann direkt auf die Hardware des ATMega zugegriffen werden, der gesamte Register-Space des Controllers (0x00...0xff) wird ab Adresse 0x7e00 (32256) in den Adressraum des emulierten Z80 eingeblendet. Damit erfolgt der Zugriff nicht mehr über IN und OUT, sondern über Speicherzugriffe die sich auch mit dem BASIC des ZX81 oder ZX80 bewerkstelligen lassen. Diese Option kann im Startmenü auch abgeschaltet werden.
Im Nachfolgenden sind die Adressen einiger nutzbarar Hardwarekomponenten sowie Programmbeispiele zu finden.

1.1 Nutzung von PORT A

Über die Adressen von PORT A lassen sich zum einen der aktuelle Pegel an den Portpins abfragen, zum anderen aber auch die Portpins selbst steuern. Bei aktivierter LCD-Ausgabe an PORT A sollte dieser nicht per Programm gesteuert werden, andernfalls kann es zur Störung des Systems und auch zu Schäden am LCD kommen.


Port HEX Port DEZ IO-Register Funktion
0x7E20 32288 PINA Portstatus (lesend) und Output toggeln (schreibend)
0x7E21 32289 DDRA Datenrichtung (eine "1" entspricht einem Ausgabepin)
0x7E22 32290 PORTA Port-Ausgabe Register


Das folgende Programm gibt an PORT A abwechselnd die Bitmuster 01010101 und 10101010 aus.
10 POKE 32289,255
11 POKE 32290,85
12 PAUSE 25
13 POKE 32290,170
14 PAUSE 25
15 GOTO 11


1.2 Nutzung von PORT C

Über die Adressen von PORT C lassen sich zum einen der aktuelle Pegel an den Portpins abfragen, zum anderen aber auch die Portpins selbst steuern. Bei aktivierter LCD-Ausgabe an PORT C sollte dieser nicht per Programm gesteuert werden, andernfalls kann es zur Störung des Systems und auch zu Schäden am LCD kommen.


Port HEX Port DEZ IO-Register Funktion
0x7E26 32294 PINC Portstatus (lesend) und Output toggeln (schreibend)
0x7E27 32295 DDRC Datenrichtung (eine "1" entspricht einem Ausgabepin)
0x7E28 32296 PORTC Port-Ausgabe Register


Das folgende Programm gibt an PORT C abwechselnd die Bitmuster 01010101 und 10101010 aus.
10 POKE 32295,255
11 POKE 32296,85
12 PAUSE 25
13 POKE 32296,170
14 PAUSE 25
15 GOTO 11


1.3 Nutzung des Analog-Digital Umsetzers

Über die Adressen des ADC lassen sich rech einfach Analogwerte an Den PortPins PORTA0...PORTA7 erfassen. Wenn die volle Bitbreite (10 Bit) genutzt werden soll muß zuerst das LOW-Byte und danach das HIGH-Byte ausgelesen werden, bei 8 Bit genügt es dagegen, nur das HIGH-Byte abzufragen.


Port HEX Port DEZ IO-Register Funktion
0x7E78 32376 ADCL LOW-Byte des ADC Results
0x7E79 32377 ADCL HIGH-Byte des ADC Results
0x7E7A 32378 ADCSRA Konfigurationsregister 1
0x7E7B 32379 ADCSRB Konfigurationsregister 2
0x7E7C 32380 ADMUX Multiplexer-Konfiguration
0x7E7E 32282 DIDR0 eine "1" schaltet den zugehörigen digitalen Eingangspin ab


Das folgende Programm liest periodisch den Analogwert an PORTA0 mit 5V Referenzspannung ein und gibt den umgerechneten Spannungswert auf dem Bildschirm aus.
10 POKE 32380,64
11 POKE 32378,199
12 LET C= PEEK(32376) + 256 * PEEK(32377)
13 LET C= C/204.8
13 PRINT AT 0,0;C;"V          "
14 PAUSE 50
15 GOTO 10


created with latex2web.pl v0.64 © 2006-2016 Joerg Wolfram