PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 27 september 2003, 17:30:58
ElektronikTomten hjälpte mig att få igång mitt STK500-kit så nu är jag glad
.
Fast jag har lite problem. Jag tänkte att som första program göra något som räknar upp binärt och sedan ner igen.
Så här ser koden ut:
Kod: Markera allt
.include "8515def.inc"
.def temp = R16
reset:
ldi temp, 0
out ddrb, temp
rjmp upp
upp:
rcall skriv
inc temp
rcall delay
cpi temp,255
breq ner
rjmp upp
ner:
rcall skriv
dec temp
rcall delay
cpi temp,0
breq upp
rjmp ner
delay:
inc r17
cpi r17,255
brne delay
clr r17
inc r18
cpi r18,255
brne delay
clr r18
ret
skriv:
out portb, temp
ret
Lysdioderna på portb förblir släckta och simulatorn fastnar på "rcall skriv" i upp-rutinen. Förslag?
Ja. Jag är n00b.
erixon
Inlägg: 380 Blev medlem: 27 augusti 2003, 10:21:58
Inlägg
av erixon » 27 september 2003, 18:03:01
Du måste initsera stack pekaren =)
Exempel
ldi rTEMP,low(RAMEND)
out SPL,rTEMP
ldi rTEMP,high(RAMEND)
out SPH,rTEMP
edit: skrev så syns vad jag menar
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 27 september 2003, 19:04:24
Det där var något jag inte har sett innan.
Får leta upp lite information om vad det är.
Tack!
Edit: Sweet.. Det ser ganska kul ut
Melker
Inlägg: 410 Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå
Inlägg
av Melker » 27 september 2003, 20:07:13
Det där pekar stackpekaren till slutet av RAM-minnet. Ifall du inte vet vad stacken är, så är det tex där adressen till nästa instruktion när en subrutin är slut lagras.
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 30 september 2003, 19:04:37
Ja koden fungerar nu som tidigare antytt. Funderade lite på en sak nu bara. Kan man inte köra ut binära tal direkt? Dvs:
?
Det skulle underlätta ganska mycket i ett av mina kommande projekt.
Melker
Inlägg: 410 Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå
Inlägg
av Melker » 30 september 2003, 19:07:47
Skriv 0b innan talet, tex 0b01010101 och 0x för hexadecimala tal, tex 0xFF
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 30 september 2003, 19:13:59
Lysande. Tack!
erixon
Inlägg: 380 Blev medlem: 27 augusti 2003, 10:21:58
Inlägg
av erixon » 30 september 2003, 21:22:48
Vad jag vet kan man inte sätta värdet direkt utan är tvunget att gå vi ett register...
Där i mot kan man hä på/av en bit på porten med hjälp av sbi och cbi men trolig är det inte vad du inte vill göra
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 30 september 2003, 22:23:25
erixon: Det vill jag också göra. Inte just nu dock men i framtiden.
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 6 januari 2004, 20:14:17
I dessa digra dagar då forumet inte fungerar ordentligt får jag istället för att skapa en ny tråd fortsätta på denna. Problemet denna gången är RTC.
Till min nixie-klocka ska jag använda Mega16 samt RTC. Jag har läst PDFen om det från Atmel men där fanns bara kodexempel i C. Jag skulle vilja ha ett exempel i assembler. Kan någon hjälpa till med detta?
Melker
Inlägg: 410 Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå
Inlägg
av Melker » 6 januari 2004, 21:00:31
Vad är det för RTC du ska använda?
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 6 januari 2004, 22:34:29
Realtidsklockan.
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 6 januari 2004, 22:47:03
Det jag vill åstadkomma är att varje sekund avbryts en loop och ökar ett register med ett.
Melker
Inlägg: 410 Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå
Inlägg
av Melker » 7 januari 2004, 00:18:30
Jag vet vad RTC är, men det finns externa RTC-kretsar som man läser ifrån vad tiden är eller så kan man göra en med interna interrupts. Om det är interrupts du ska använda så kan du läsa på tex avr-freaks om hur det fungerar, finns något exempel där hur man använder timers. Står även en del om interrupts på
http://www.avrbeginners.net/
PaNiC
Inlägg: 2610 Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet
Inlägg
av PaNiC » 7 januari 2004, 01:02:59
Jaså det var så du menade.
En kristall mellan Tosc1 och Tosc2 var hårdvaran jag tänkte mig.