sytse
Euh......
Hy allemaal,
Heb het hele weekend met mn nieuwe STK500 gespeeld
echt super, Het programeren gaat steeds beter. Alleen de subrutines in assembler kom ik niet echt uit. Zodra je het commando "Call" uitvoer springt ie netjes naar het gegeven adres maar als je dan terug wilt naar waar je gebleven was in het programma (met het commando "Ret") dan begint ie weer opnieuw aan het begin van het programma.
Ik heb het probleem ff kort weergegeven in het programmaatje hieronder het is dus de bedoeling dat alle bits van portD gaan knipperen. (Dus hoog, vertraging, laag, vertraging, hoog,....)
Kan iemand mij vertellen wat ik niet goed doe??
alvast bedankt,
Sytse
.device ATmega8
.include "m8def.inc"
;
;
;
;variabele declaratie
.def var = r16
.def timer1 = r17
.def timer2 = r18
;
;
.cseg
.org 0x00
rjmp main
;
;
;
; subroutine "DELAY"
delay: dec timer1
brne delay
dec timer2
brne delay
ret
;
;
;Hoofdprogramma
main:
ldi var, 0b11111111 ;schrijf FF naar var
out DDRD, var ;maak heel poortD output
;eindeloze loop
loop:
call delay ;call subroutine
ldi var, 0b11111111 ;schrijf FF naar var
out PORTD, var ;schrijf FF naar poortD
call delay ;call subroutine
ldi var, 0b00000000 ;schrijf 00 naar var
out PORTD, var ;schrijf 00 naar poortD
rjmp loop ;begin opnieuw
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 3 februari 2003 22:21:01 schreef sytse:
Kan iemand mij vertellen wat ik niet goed doe??
Denk je nou echt dat iemand jou nog gaat helpen nadat je dat bord hebt gewonnen?
Oh sorry, was een geintje. 
Je bent vergeten je stackpointer in je stellen.
sytse
Euh......
Op 3 februari 2003 22:23:31 schreef Bastiaan:
[...]
Denk je nou echt dat iemand jouw nog gaat helpen nadat je dat bord hebt gewonnen?
Jaloers ????:P:P:P:P
Ok bedankt, ik ga het meteen proberen
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 3 februari 2003 22:25:15 schreef sytse:
[...]
Ok bedankt, ik ga het meteen proberen
Weet je hoe het moet?
Zo:
; set stackpointer to top of RAM
ldi r16,high(RAMEND)
out SPH, r16
ldi r16, low(RAMEND)
out SPL, r16
Je kunt trouwens meerdere manieren gebruiken voor de notatie van getallen. Jij gebruikt alleen de byte notatie met 0b00000000
Maar je kunt ook (af en toe) de hex notatie nemen. Jij zegt namelijk bij je commentaar ;laad met FF. Het is ook makkelijker om dan te zeggen
ldi r16, 0xff
Gewoon een tip, of je er wat mee doet moet je zelf weten.
/edit, maar ff meteen gepost hoe het moet, en een tip erbij 
[Bericht gewijzigd door Bastiaan op ]
sytse
Euh......
Op 3 februari 2003 22:25:53 schreef Bastiaan:
Maar je kunt ook (af en toe) de hex notatie nemen. Jij zegt namelijk bij je commentaar ;laad met FF. Het is ook makkelijker om dan te zeggen
ldi r16, 0xff
K super.
Ps. De hex notatie had ik al in het orginele programma gebruikt, maar ik vond de binaire notatie wat overzichtelijker in dit korte voorbeeldje. Dusss....
Koen Van Vlaenderen
De vergeetachtigheid bewijst grotere diensten aan het hart dan het geheugen aan het verstand.
had ik ook eerst vergeten die stackpointer 
heeft wel tijd gekost eer ik het door had 
Maar nu met Bastiaan's AVR knobbel moet dat wel goed komen op het forum hier 
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 3 februari 2003 23:16:34 schreef Koen Van Vlaenderen:
Maar nu met Bastiaan's AVR knobbel moet dat wel goed komen op het forum hier
Zeg maar gerust µC/P knobbel, want AVR is niet de enigste die ik ken 
Koen Van Vlaenderen
De vergeetachtigheid bewijst grotere diensten aan het hart dan het geheugen aan het verstand.
Op 4 februari 2003 00:07:07 schreef Bastiaan:
[...]
Zeg maar gerust µC/P knobbel, want AVR is niet de enigste die ik ken
Bastiaan
Op 4 februari 2003 00:07:07 schreef Bastiaan:
Zeg maar gerust µC/P knobbel, want AVR is niet de enigste die ik ken
Goh Bastiaan, waar zit die knobbel dan?
Als ie aan de zijkant van je hoofd zit, loop je zeker nogal 'ns scheef?

Koen Van Vlaenderen
De vergeetachtigheid bewijst grotere diensten aan het hart dan het geheugen aan het verstand.