/* ************************************************************************************************************* ** * Das Programm fährt den Motor auf Tastendruck auf und ab oder eine definierte Strecke * auf Tastendruck: * * PortA SW0 für "fahre ab" * PortA SW1 für "fahre auf" * PortA SW2 für "fahre 1mm ab" * PortA SW3 für "fahre 1mm auf" * PortA SW4 für "fahre 1cm ab" * PortA SW5 für "fahre 1cm auf" * PortA SW6 für "fahre 10cm ab" * PortA SW7 für "fahre 10cm auf" * * PortC P0 für Signal an den Motor "auf" * PortC P1 für Signal an den Motor "ab" * PortB P0 Eingang für das TaktSignal des HallSensor1 (20Pulse/3mm; 0,15mm/Puls) * möglich wären 40Pulse/3mm; 0,075mm/Puls wenn auch Hallsensor2 betrachtet würde * * def: hier werden Register reserviert und benannt * * init: hier werden die Ports zu Aus- oder Eingang erklärt, sowie die Rs232-Schnittstelle initialisiert * PortB, Pin0 zum Zählereingang erklärt * PortD, Pin1 zum Txd (USART-output) erklärt * PortD, Pin2 zum Rxd (USART-input) erklärt * //DIE RS232-Schnittstelle ist NOCH NICHT IMPLEMENTIERT!!! * Es geht mir hier um den Zähler! -Kann da jemand meinen Fehler erkennen?! Ich bin ratlos! * *********************************************************************************************************** */ .nolist ; Die Definitionen müssen nicht an den Mikroprozessor übermittelt werden .include "m8515def.inc" ; Definitionen für den ATmega8515 .list ; Ab hier wieder an den Mikroprozessor übermitteln: def: // R16 und 17 sind für die UART-Schnittstelle reserviert ohne hier ein Label zu erhalten .def CntL = R18 .def CntH = R19 .def CntFlag = R20 .def temp = R21 ; definiere: Label: Register R18 als "temp" .def temp2 = R22 ; definiere: Label: Hilfsregister zur Schaltererkennung für "Stop" .def compValueL = R23 .def compValueH = R24 .def prevLowFlag = R25 init: //DEBUG // ldi temp,0xFB ; inaktiver Programmteil um den Zähler zu testen // out PINA,temp //DEBUG ende //USART_Initialisierung für den AtMEGA: // Set baud rate out UBRRH, r17 out UBRRL, r16 // Enable receiver and transmitter ldi r16, (1<