"Nimm nie einen Menschen, wenn du auch eine Maschine nehmen kannst." Agent Smith aus dem Film "Matrix" |
lokal: | Homepage: |
---|---|
avr-binutils-2.14-1.i386.rpm avr-gcc-3.3.1-1.i386.rpm avr-libc-1.0-1.i386.rpm |
http://www.nongnu.org/avr-libc/ |
uisp-20030618-1.i386.rpm | http://savannah.nongnu.org/projects/uisp/ |
avr-gcc -g -mmcu=atmega64 -c blinkled.c && avr-gcc -g -mmcu=atmega64 -o blinkled.elf blinkled.o && avr-objcopy -j .text -j .data -O ihex blinkled.elf blinkled.hex
uisp -dlpt=/dev/parport0 --erase -dprog=stk200
uisp -dlpt=/dev/parport0 --upload if=blinkled.hex -dprog=stk200 -v=3 --hash=32
uisp -dlpt=/dev/parport0 --wr_fuse_e=0xff --wr_fuse_l=0xef --wr_fuse_h=0xd9 --upload if=blinkled.hex -dprog=stk200 -v=3 --hash=32
Kabel | µC |
---|---|
Pin 1 - Vcc | Vcc |
Pin 2 - SCK | Pin 11 - PB1 (SCK) |
Pin 3 - Reset | Pin 20 - Reset |
Pin 4 - MOSI | Pin 2 - PE0 (RXD/PDI) |
Pin 5 - MISO | Pin 3 - PE1 (TXD/PD0) |
Pin 6 - GND | GND |
/* Testprogramm, welches die LED an Port A Pin 0 im Halbsekundentakt blinken laesst. */ #include <avr/io.h> #ifndef F_CPU #define F_CPU 8000000UL /* Quarz mit 8 Mhz */ #endif #include <util/delay.h> int main( void ) { DDRA = ( 1 << PA0 ); // PortA Pin 0 als Ausgang setzen while( 1 ){ // Endlosschleife PORTA &= ~(1 << PA0); // PortA Pin 0 ausschalten _delay_ms(500); // Eine halbe Sekunde warten PORTA |= (1<< PA0); // PortA Pin 0 einschalten _delay_ms(500); // Eine halbe Sekunde warten } // Ende while-Schleife return 0; } |
ISR(TIMER0_OVF_vect) { } //Timer/Counter0 Overflow
Anschlussplan: | Wahrheitstabelle: | ||