[Top][All Lists]
[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