avr-chat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Odp: [avr-chat] AVR Test


From: Arkadiusz Krysiak
Subject: Odp: [avr-chat] AVR Test
Date: Tue, 30 May 2006 19:50:31 +0200


Dnia 30-05-2006 o godz. 3:22 Chris Spencer napisał(a):
> I was able to get my dev environment setup (thanks Galen) and 
> successfully write a hex file to my atmega48. However, my test program 
> doesn't make the led blink. Below is my c code and makefile. Does anyone 
> see any glaring problems? Is my makefile setting (or not setting) the 
> appropriate fuse bits? I'm testing on two Pololu Baby Orangutan boards 
> (http://www.pololu.com/products/pololu/0215/), so I'm pretty confident 
> it's not a hardware issue. All lights are green on the programmer.
> 
> #include <avr/io.h>
> 
> /* at 8 MHz we get 1us per 8 instructions */
> inline void delayus() { asm volatile("nop\nnop\nnop\nnop\n"
>                                         "nop\nnop\nnop\nnop"); }
> 
> void delayms(uint16_t millis) {
>     uint16_t loop;
>     while ( millis ) {
>     loop = 100;
>     while (loop) {
>         /* 20us of delays */
>         delayus(); delayus(); delayus(); delayus(); delayus();
>         delayus(); delayus(); delayus(); delayus(); delayus();
>         loop--;
>     }
>     millis--;
>     }
> }
> 
> int main(void) {
>     DDRD |= 1<<PD1; /* set PD1 to output */
>     while(1) {
>     PORTD |= 1<<PD1; /* LED on */
>     delayms(1000);
>     PORTD &= !(1<<PD1); /* LED off */
>     delayms(1000);
>     }
>     return 0;
> }
> 
> CC=avr-gcc
> CFLAGS=-g -Os -Wall -mcall-prologues -mmcu=atmega48
> OBJ2HEX=avr-objcopy
> TARGET=blink
> PART=m48
> PROGRAMMER=avrisp2
> 
> program: $(TARGET).hex
>     avrdude -p $(PART) -c $(PROGRAMMER) -P usb -e flash:w:$(TARGET).hex
> 
> %.obj: %.o
>     $(CC) $(CFLAGS) $< -o $@
> 
> %.hex: %.obj
>     $(OBJ2HEX) -R .eeprom -O ihex $< $@
> 
> clean:
>     rm -f *.hex *.obj *.o
> 
> 
> 
> 

I tested Your code its ok. Working with for loop and while loop.
(I have LED on PA6 ).
#include <avr/io.h>

/* at 8 MHz we get 1us per 8 instructions */
inline void delayus() { asm volatile("nop\nnop\nnop\nnop\n"
"nop\nnop\nnop\nnop"); }

void delayms(uint16_t millis) {
uint16_t loop;

while ( millis ) {
        loop = 100;
        while (loop) {
        /* 20us of delays */
        delayus(); delayus(); delayus(); delayus(); delayus();
        delayus(); delayus(); delayus(); delayus(); delayus();
        loop--;
        }
                millis--;
        }
}

int main(void) {
        DDRA |= 1<<PA6; /* set PD1 to output */
        for (;;) {
                PORTA |= 1<<PA6; /* LED on */
                delayms(1000);
                PORTA &= !(1<<PA6); /* LED off */
                delayms(1000);
        }
        return 0;
}


You can send fuses and lss file?

_______________________________________________
> AVR-chat mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/avr-chat
> 


----------------------------------------------------
"Gdańsk na pięciolinii" koncert Władysława Malickiego 4 czerwca 2006
godz. 20.00 na scenie plenerowej Filharmonii Bałtyckiej na Ołowiance!
Szczegóły: WWW.fundacjagdanska.pl
http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2F5lini.html&sid=773






reply via email to

[Prev in Thread] Current Thread [Next in Thread]