ok ok ich bin ein newbie mit asm und avr :) aber hab mal viel mit dem 368er gemacht ... hab da nen source zusammen gestückelt... ;------------------------------------------------ ; Timer 0 ;------------------------------------------------ .include "4433def.inc" .def temp = r16 .def counter = r17 .def leds = r18 .equ start = 256 - 244 .equ loops = 10; rjmp reset ; Reset Handler reti ; IRQ0 Handler reti ; IRQ1 Handler reti ; Timer1 Capture Handler reti ; Timer1 compare Handler reti ; Timer1 Overflow Handler rjmp timer0 ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; UART RX Complete Handler : RXCIE reti ; UDR Empty Handler reti ; UART TX Complete Handler reti ; ADC Conversion Complete Interrupt Handler reti ; EEPROM Ready Handler reti ; Analog Comparator Handler reset: ldi temp, RAMEND out SP, temp ; set stack pointer ldi temp, 0xFF out DDRB, temp ; PORTB configured for output ldi temp, 0xFF out PORTB, leds ; LEDs ausschalten ldi temp, 1<<TOIE0 ; 0000 0010 out TIMSK, temp ; timer 0 interrupt ein ldi temp, start out TCNT0, temp ; Startwert des Timers ldi temp, 0b00000101 out TCCR0, temp ; ; Timer starten mit Vorteiler 1024 ldi counter, loops ldi leds, 0xFF sei ; interrupts generell aktivieren main: loop: rjmp loop ;-------------------------------------------------- timer0: dec counter brne restart ldi counter, loops rol leds out PORTB, leds restart: ldi temp, start out TCNT0, temp ; Timer fängt wieder von vorn an reti und jetzt meine fragen .... in der zeile: ldi temp, 0xFF out PORTB, leds ; LEDs ausschalten werden da nicht alle leds eingeschalten ?? wegen dem komentar das stammt nicht von mir ... und dann wenn timer0 aufegrufen wird und "rol leds" ... sollte dann nicht lauter 1er gerollt werden ?? aber es macht genau das was ich eigentlich wollte es wird 1 led aus geschaltet und wandert dann im "kreis" nur weiß ich nicht warum kann mir das jemand erklären ??
Wenn die LEDs zwischen +Ub und dem Controller hängen werden sie ausgeschaltet wenn die Portpins auf HIGH gehn, das stimmt schon. An beiden Seiten 5V = kein Strom :-D Und was das andere angeht: rol rotiert nicht nur die Bits im Register sondern zusätzlich das Carry, und wenn im Carry ne 0 war dann haste Deine 0 zwischen den ganzen 1sen. mng
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.