Hallo Hubert.G
hoffentlich hat´s geschmeckt. Danke schon mal jetzt für Deine Mühe.
Ich habe das natürlich in Assembler getestet (mit demselben Aufbau) - weil ich mir nicht über den Weg traue:
.. da geht die Leuchte an - und bleibt es auch.Code:;=================================================================================== ;* Schaltung ZU Test "erstes C-Programm" ###>>> t2313, auszugsweise ; ; Vcc -----------t2313-----+------------Vcc ; | ; | +------+ rLED|\ | ; +---+ 100R +-------| >+---+ ; +------+ |/ | | ; | ; t2313-PB1=pin13---------------------+ ; ; ; GND-------------------------------------------------GND ; ;=================================================================================== ; Speicherbelegung ;r16 Mehrzweck, high-Byte in Pausen "pause_an", "pause_aus", "led_ende" u.ä. ; ;=================================================================================== ; Deklarationen und Konstanten für den Praeprozessor #define a r16 ;Kurzbezeichung für Allzweckregister r16 ; ;=================================================================================== #include "tn2313def.inc" ; Interrupthandler-Tabelle (aus AT2313_doc2535.pdf, Seite 42) ; Address Code Labels ;Comments .org 0x0000 rjmp reset ;Reset Handler .org 0x0001 reti ; INT0 ;External Interrupt0 Handler .org 0x0002 reti ; INT1 ;External Interrupt1 Handler .org 0x0003 reti ; TIM1_CAPT ;Timer1 Capture Handler .org 0x0004 reti ; TIM1_COMPA ;Timer1 CompareA Handler .org 0x0005 reti ; TIM1_OVF ;Timer1 Overflow Handler .org 0x0006 reti ; TIM0_OVF ;Timer0 Overflow Handler .org 0x0007 reti ; USART0_RXC ;USART0 rX Complete Handler .org 0x0008 reti ; USART0_DRE ;USART0,UDR Empty Handler .org 0x0009 reti ; USART0_TXC ;USART0 TX Complete Handler .org 0x000A reti ; ANA_COMP ;Analog Comparator Handler .org 0x000B reti ; PCINT ;Pin Change Interrupt .org 0x000C reti ; TIMER1_COMPB ;Timer1 Compare B Handler .org 0x000D reti ;IRS für Timer0 CompareA Handler (t2313) .org 0x000E reti ; TIMER0_COMPB ;Timer0 Compare B Handler .org 0x000F reti ; USI_START ;USI Start Handler .org 0x0010 reti ; USI_OVERFLOW ;USI Overflow Handler .org 0x0011 reti ; EE_READY ;EEPROM Ready Handler .org 0x0012 reti ; WDT_OVERFLOW ;Watchdog Overflow Handler ; ;=================================================================================== ; Hauptprogramm ;=================================================================================== ; reset: ;=== Generelle Initialisierung ; Zuerst RAMEND und Stack definieren; ldi a,RAMEND ;Ram Ende des tiny2313 out SPL,a ;Stack Pointer tiny2313 setzen ; anfang: ;=== Nur ein Dummy-Hauptprogramm mit einer leeren Schleife ; rcall mc_init ;Initialisiere den Mikrocontroller ; sbi portb,2 ; anfang2: rjmp anfang2 ; ;=================================================================================== ; Prozeduren ;=================================================================================== ; ; ;=================================================================================== ; Initialisierungprozeduren, für µC, ADC und Timer-ISR ;=================================================================================== ; mc_init: ;=== Initialisiere Mikrocontroller ;ALLE Register initialisieren hier := pull-ups einschalten ; ldi a,0b11111111 ; ;Datenrichtung "Ausgänge" für ports 0 - 7 out ddrb,a ldi a,0b00000000 out portb,a ; ports aus-(=) oder ein(1)schalten; low = sink ret ;=====----->>>>> ; ;=================================================================================== ; Interrupt-Service-Routine ;=================================================================================== ; ;=================================================================================== ; Ende des Quellcodes ;===================================================================================






Zitieren

Lesezeichen