kostenloser Webspace werbefrei: lima-city


Makefile für (avr-)gcc?

lima-cityForumHeim-PCSoftware

  1. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. d***********a

    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
  4. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    @dapizzafressa
    Danke! Hätte nicht gedacht das es so einfach geht! (-;
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!