Guten Tag!
Letztes Jahr haben wir in der Schule die Theorie der µController gelernt, jetzt möchte ich das Theoretische mal in die Praxis umwandeln.

Hab mir einen ATmega8515 besorgt, da wir im Unterricht hauptsächlich über diesen µC gesprochen haben.
Dann hab ich mir noch ein Adapterkabel zum übertragen des Programms von der seriellen Schnittstelle zum µC gebaut.
An den µC hab ich an XTAL1 und XTAL2 einen 4MHz Quartz mit 2 27pF Kondensatoren angschloßen. Der Reset Pin ist über einen 10k Widerstand mit VCC verbunden.

Ich hab ein Programm in AVRStudio getippt, das alle Ports auf 1 schalten soll. Im Studio kann man es ja testen und da funktioniert es.
Dann lad ich das Programm mit Ponyprog zum µC. Das funktioniert auch ohne Fehler.
Nun sollte der µC das doch machen, oder? Macht er aber nicht. Alles bleibt ausgeschalten. Kann mir vielleicht jemand einen Tip geben was ich falsch gemacht haben könnte, oder was ich noch vergessen habe? Oder muss ich den irgendwie einschalten?
Hier der Code meines Programms:
Code:
;*****************************************************************************
;* 
;* DATEINAME	: Led.asm 
;* TITEL	: 
;* DATUM	: 9.2.06
;* AUTOR	: STK
;* VERSION	: 1.0
;*
;* 
;*****************************************************************************
.CSEG				
.org 0x0000 		
.include "m8515def.inc"

rjmp MAIN			; Springe um den Prozedurcode herum zum Start des Hauptprogrammes
rjmp UnusedInt_ISR
rjmp UnusedInt_ISR
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 			;Externes Interrupt-Ereignis zum Stoppen der Zeit
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
rjmp UnusedInt_ISR 
UnusedInt_ISR:	reti

  

;--KONSTANTENDEKLARATION---------------------------------------------
	; status register bits
.equ CarryFlag		= 0
.equ ZeroFlag	 	= 1
.equ NegativeFlag	= 2
.equ TwosFlag	 	= 3
.equ SignFlag	 	= 4
.equ HalfCarryFlag	= 5
.equ TransferFlag	= 6
.equ GlobalFlag	 	= 7

;--VARIABLENDEKLARATION----------------------------------------
.def work = R16						;Temp. Variable
;--Unterprogramme-----------------------------------------------------
init:
	ser work
	out ddra, work 					;Port A, B, C,
	out ddrb, work					;und D als Ausgang
	out ddrc, work					;definieren
	out ddrd, work					

rjmp main_loop


;--HAUPTPROGRAMM-----------------------------------------------------
.CSEG

MAIN:
	;Stackpointer initialisieren
	ldi	work,low (RAMEND)			; RAMEND ist eine im include file vorgegebene Konstante,
	out	SPL,work
	ldi work, high(RAMEND)	
	out	SPH,work
   
rjmp init							
									
Main_loop:
 	ldi work, 0b11111111
 	out PortA, work;
 	out PortB, work;
	out PortC, work;
	out PortD, work;
rjmp Main_loop;
Findet da jemand einen Fehler?

Danke
MFG Stefan