Makefile für (avr-)gcc?
lima-city → Forum → Heim-PC → Software
all
befehl
bringen
chip
code
compiler
ersetzen
hexen
http
kleines projekt
lange dateien
output
paar
see
set
setting
suche
text
these
zeile
-
Ich programmiere schon seit einiger Zeit mit avr-gcc (GCC für Atmel AVRs) Mikcrocontroller. Leider kommen zu dem Compiler Befehl noch 2 bzw. 3 weitere Befehle z.B. zum linken und "hexen" und eswegen suche ich eine möglchst einfache Makefile um die drei Befehle mit einem make zu ersetzen. Leider finde ich sowohl in avr-gcc Tutorials nur Seiten lange Dateien mit haufenweise definierungen die man ja wohl anscheind nicht braucht. Aber auch normale Make Tutorials bringen mich nicht weiter.
Kennt da einer ein einfaches Tutorial oder hat einer ein paar zeilen code für mich? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich hab da ein kleines Projekt, das evtl interessant sein könnte:
Makefile:
all: avr-gcc -mmcu=attiny2313 -O2 led.c -o led.o avr-objcopy -j .text -j .data -O ihex led.o led.hex avrdude -V -p attiny2313 -c ponyser -P /dev/ttyUSB0 -U flash:w:led.hex
led.c:
/* fade leds connected to ATtiny2313, perhaps different colored leds (c) Christian Eichler http://www.christian-eichler.de license: cc by-sa, see http://creativecommons.org/about/licenses/ */ #include <avr/io.h> #include <util/delay_basic.h> typedef struct led { uint8_t bn; // brightness int8_t io; // fade in (1) / out (-1) uint8_t pin; // the IC's pin } led; // ------------------------------------------------------------------- // the only thing you need to do is to change the settings below here // ------------------------------------------------------------------- #define LEDS 15 // the number of leds used #define SPEED 3 // the speed these leds are fading, the higher the slower the fade #define LEDS_PIN _BV(PD0) | _BV(PD1) | _BV(PD2) | _BV(PD3) | _BV(PD4) | _BV(PD5) | _BV(PD6) | _BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) | _BV(PB7) // where are these leds connected to led leds[LEDS] = {1,1,PD0, 254,-1,PD1, 127,-1,PD2, 127,1,PD3, 191,-1,PD4, 191,1,PD5, 63,1,PD6}; // set up the leds :) // ------------------------------------------------------------------- // there should be no need to change anything below here // ------------------------------------------------------------------- int main(void) { DDRD |= LEDS_PIN; // set the outputs as defined uint8_t i = 0; uint8_t ispeed = SPEED; while(1) { while(i < LEDS) // every led should be faded { leds[i].bn += leds[i].io; // set the brightness up/down if(leds[i].bn == 1 || leds[i].bn == 254) // we need to "turn around" if the led is fully "on" or fully "off" { leds[i].io *= -1; // turn around } while(ispeed) { PORTD |= _BV(leds[i].pin); // led is now "on" _delay_loop_1(leds[i].bn); // wait some time PORTD &=~ _BV(leds[i].pin); // led is now "off" //_delay_loop_1(255-leds[i].bn); // wait again some time ispeed--; } i++; } i = 0; } return 0; }
Das lässt sich unter Linux (Debian Squeeze) wunderbar verarbeiten und auf den Chip bringen :)
Grüße Chris
-
@dapizzafressa
Danke! Hätte nicht gedacht das es so einfach geht! (-; -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage