logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Prośba o skompilowanie programu napisanego w Assemblerze

wilus14 30 Wrz 2009 21:53 1227 3
REKLAMA
  • #1 7076784
    wilus14
    Poziom 17  
    Witam mam prośbę czy ktoś mógłby mi skompilować program?? ponieważ nie wiem w jakim programie to zrobić bo program jest assemblerze
    
    .include "2313def.inc"
    
    .def temp = r16
    .def licznik = r17
    .def licznikRL = r18
    .def f1=r19
    .def f2=r20
    .def f3=r21
    .def f4=r22
    .def delay0 = r23
    .def delay1 = r24
    .def delay2 = r25
    
    .org 0x0000
    rjmp Reset
    .org INT0addr	;External Interrupt0 Vector Address
    reti
    .org INT1addr	;External Interrupt1 Vector Address
    reti
    .org ICP1addr	;Input Capture1 Interrupt Vector Address
    reti
    .org OC1addr	;Output Compare1 Interrupt Vector Address
    reti
    .org OVF1addr	;Overflow1 Interrupt Vector Address
    reti
    .org OVF0addr	;Overflow0 Interrupt Vector Address
    reti
    .org URXCaddr	;UART Receive Complete Interrupt Vector Address
    reti
    .org UDREaddr	;UART Data Register Empty Interrupt Vector Address
    reti
    .org UTXCaddr	;UART Transmit Complete Interrupt Vector Address
    reti
    .org ACIaddr	;Analog Comparator Interrupt Vector Address
    reti
    
    Reset:
    ;;;;;;;;;;STACK;;;;;;;;;;;;;
    ldi temp,ramend
    out spl,temp
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;;PORTy;;;;;;;;;;;;;
    ldi temp,0b11111111
    out ddrb,temp
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;;AC_OFF;;;;;;;;;;;;
    ldi temp,0b10000000
    out acsr,temp
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;;;MAIN;;;;;;;;;;;;;
    Loop:
    sec
    ldi f1,0b11110000
    ldi f2,0b11110001
    ldi f3,0b11110011
    ldi f4,0b11110111
    clr licznik
    rcall Faza
    
    Left:
    clr licznikRL
    Left1:
    sec
    rol f1
    rol f2
    rol f3
    rol f4
    rcall Faza
    inc licznikRL
    cpi licznikRL,4
    breq ExLeft
    rjmp Left1
    ExLeft:
    
    sec
    ror f4
    rcall Faza
    
    sec
    ror f3
    ror f4
    rcall Faza
    
    sec
    ror f2
    ror f3
    ror f4
    rcall Faza
    
    Right:
    clr licznikRL
    Right1:
    sec
    ror f1
    ror f2
    ror f3
    ror f4
    rcall Faza
    inc licznikRL
    cpi licznikRL,4
    breq ExRight
    rjmp Right1
    ExRight:
    
    sec
    rol f4
    rcall Faza
    
    sec
    rol f3
    rol f4
    rcall Faza
    
    rjmp Loop
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;SUBy;;;;;;;;;;;;;;;
    Faza:
    clr licznik
    Faza1:
    out portb,f1
    rcall Delay5ms
    rcall Delay1ms
    out portb,f2
    rcall Delay5ms
    rcall Delay1ms
    out portb,f3
    rcall Delay5ms
    rcall Delay1ms
    out portb,f4
    rcall Delay5ms
    rcall Delay1ms
    inc licznik
    cpi licznik,7
    breq ExFaza
    rjmp Faza1
    ExFaza:
    ret
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;;;Wasters;;;;;;;;;;
    Delay5ms:
    ldi delay0,255	;r1*r2*...*rn*C, gdzie C=7 (wynik daje ilosc operacji; 10mln przy 10MHz to 1s)
    ldi delay1,28	;nie do konca wiem dlaczego 7
    D5ms:
    dec delay0
    nop
    nop
    nop
    nop
    brne D5ms
    dec delay1
    nop
    nop
    nop
    nop
    brne D5ms
    ret
    
    
    Delay1ms:
    ldi delay0,255
    ldi delay1,13
    D1ms:
    dec delay0
    brne D1ms
    dec delay1
    brne D1ms
    ret
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
  • REKLAMA
  • REKLAMA
  • #4 7078495
    wilus14
    Poziom 17  
    program na attiny2313;] a i nie jest to do sterowania silnika krokowego tylko do efektu "kingh raider"
REKLAMA