The NXP code is pretty basic
#include "mbed.h" DigitalOut led(LED1); DigitalIn DATA(p23); int main() { while(1) { led.write(0); while(DATA); led.write(1); while(!DATA); } }
The AVR code was a bit trickier as it uses the timer interrupt. Took me a while to get my head round it
.include "TN13DEF.INC" .org 0000 ; reset interrupt vector rjmp on_reset .org 0012 ; timer0 overflow interrupt vector rjmp tim0_overflow on_reset: ser r16 out ddrb, r16 ; set the pin I/O ldi r16, 0b_0000_0101 ; set the clock multiplier out tccr0b, r16 ldi r16, 0b_0000_010 ; turn the timer on out timsk0, r16 sei ; turn on interrupts main: nop ; I walk and walk, do nothing rjmp main tim0_overflow: ; negate portb in r17, portb com r17 out portb, r17 reti
No comments:
Post a Comment