Behydro Skrevet 31. desember 2006 Del Skrevet 31. desember 2006 Da har jeg endelig fått fyring på min Atmegaboard32. https://www.diskusjon.no/index.php?showtopic=528237 Målet mitt er at denne microkontrolleren skal styre min fjernstyrte bil/robot/rullestol ting Den skal bygges av driv motorene fra en rullestol, styres via PWM fra microkontrolleren og få styresignaler fra pot meter drevet av servoer fra fjernstyringen. Så kommer der inn flere følere og div etterhvert. Dette er iallefall planen men den kommer nokk til å endre seg etterhvert. Men før man kan gå må man lære seg å krype..... Desverre (Tilgi meg for mine skrivefeil, bare er sann) Så jeg begynte med noe eksempler koder som fulgte med for å forstå hvordan man setter opp porter til inn og ut og hvordan dette funker. Jeg fant en kode der portA fungerer som ett løpelys. Jeg forandret den litt slik at man leser inn en verdi fra portB som bestemmer hastigheten. Vel og bra, det funket, men så er der noen ting jeg lurer på.... Først hele koden: Merket i rødt er mine forandringer ;********************************************** ; example program for emb-avr e1 family ; atmega32 @16MHz ; test PORTA ; ere co.,ltd. ; www.ere.co.th ;*********************************************** .include "m32def.inc" .CSEG .ORG 0x0000 JMP RESET RESET: LDI R16,HIGH(RAMEND) ; main program start OUT SPH,R16 ; set stack pointer to top of RAM LDI R16,LOW(RAMEND) OUT SPL,R16 LDI R16,0xFF OUT DDRA,R16 LDI R16, 0x00 OUT DDRC,R16 LOOPI: LDI R17,8 LDI R16,0xFF CLC LOOPR: ROL R16 OUT PORTA,R16 CALL DELAY DEC R17 BRNE LOOPR JMP LOOPI DELAY: IN R0,SREG DEL2: LDI R26,0xFF LDI R27,0xFF DEL1: SBIW R26,1 BRNE DEL1 DEC R18 BRNE DEL2 OUT SREG,R0 IN R13,PINC MOV R18,R13 RET Først, hvordan klarer man å hente ut klar tekst med tabulatorer slik at man kan poste koden rett her uten å måtte flytte på alt? Ble bare rot. Hvorfor begynner de slik: .CSEG .ORG 0x0000 JMP RESET RESET: LDI R16,HIGH(RAMEND) ; main program start OUT SPH,R16 ; set stack pointer to top of RAM LDI R16,LOW(RAMEND) OUT SPL,R16 LDI R16,0xFF OUT DDRA,R16 Er det ikke nokk med dette eller: .def Temp = R16 ;Gives "Defines" Register R16 the name Temp .org 0x0000 ;Places the following code from address 0x0000 rjmp RESET ;Take a Relative Jump to the RESET Label RESET: ;Reset Label ldi Temp, 0xFF ;Store 255 in R16 (Since we have defined R16 = Temp) out DDRB, Temp ;Store this value in The PORTB Data direction Registe Holder med spørsmål for denne gang, kommer nokk mye mer Lenke til kommentar
Emancipate Skrevet 31. desember 2006 Del Skrevet 31. desember 2006 Først, hvordan klarer man å hente ut klar tekst med tabulatorer slik at man kan poste koden rett her uten å måtte flytte på alt? Ble bare rot. Bruk code-tags: IN R13, PINC Lenke til kommentar
Behydro Skrevet 31. desember 2006 Forfatter Del Skrevet 31. desember 2006 (endret) Hehe.... janeidet.... Burde jeg ha sett Da skal jeg gå fra assembly til C kode, så bare glem det første masingen. Blir nokk senere Men nei da.... No er det Basecom som skal prøves, her vingler vi mer enn.... ettelleranna rart nokke Endret 1. januar 2007 av Behydro Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå