chciałbym wykonać program (tj. zasymulować uC), który stworzy tzw. maszerującą jedynkę. Np. mamy 8 diod ułożonych jedna za drugą. Zapala się pierwsza, gaśnie, zapala się druga, gaśnie, zapala się trzecia etc. Wszystko ma się dzieć z opóźnieniem x sekund. I z tym opoznieniem jest problem.
Narazie wypracowałem coś takiego:
Kod: Zaznacz cały
#include "msp430.h"
;-------------------------------------------------------------------------------
ORG 0F000h ; Progam Start (4K Flash device)
;-------------------------------------------------------------------------------
RESET mov.w #02C0h,SP ; Set stackpointer (256B RAM device)
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
SetupP1 bis.b #001h,&P5DIR ; Set P5.1 to output direction
Mainloop: RLC.B &P2OUT
loop: xor.b #007h,&P1OUT
Wait mov.w #000003,R15
Delay dec.w R15
jnz Delay
jmp Mainloop
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
END

Prosze o porady, jak mozna spowolnic proces zapalania sie diod (a wlasciwie przedluzyc czas swiecenia kazdej po koleji).