Escribí un código de muestra muy simple en mi atmega8 a través de avrstudio. Aquí está:
#include <avr/io.h>
#ifndef F_CPU
#define F_CPU 1000000UL
#endif
int main(void)
{
DDRC = 0xff;
while (1)
{
PORTC = 0xff;
}
return (0);
}
Estoy esperando que todos los pines del PORTC den un alto voltaje (también conocido como 5v) para que el LED permanezca encendido (todo el tiempo), pero el resultado es que todos los pines del PORTC reciben una onda cuadrada de 160 Hz con el alto voltaje alrededor del 25%.
Paraelregistro,elbitdefusibleseestableciócomo:[Bajo:E1
Alto:99
]ysincristal.
Entonces,¿cuálseráelproblema?
EDITAR
LasalidadeavrdudeconlaquesuboelHEXalchip:
avrdude.exe:setSCKfrequencyto32000Hzavrdude.exe:warning:cannotsetsckperiod.pleasecheckforusbaspfirmwareupdate.avrdude.exe:AVRdeviceinitializedandreadytoacceptinstructionsReading|##################################################|100%0.01savrdude.exe:Devicesignature=0x1e9307avrdude.exe:NOTE:"flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: set SCK frequency to 32000 Hz
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: reading input file "C:\Users\ximing\Documents\Atmel Studio.2\GccBoardProject1\GccBoardProject1\Debug\GccBoardProject1.hex"
avrdude.exe: writing flash (68 bytes):
Writing | ################################################## | 100% 0.10s
avrdude.exe: 68 bytes of flash written
avrdude.exe: verifying flash memory against C:\Users\ximing\Documents\Atmel Studio.2\GccBoardProject1\GccBoardProject1\Debug\GccBoardProject1.hex:
avrdude.exe: load data flash data from input file C:\Users\ximing\Documents\Atmel Studio.2\GccBoardProject1\GccBoardProject1\Debug\GccBoardProject1.hex:
avrdude.exe: input file C:\Users\ximing\Documents\Atmel Studio.2\GccBoardProject1\GccBoardProject1\Debug\GccBoardProject1.hex contains 68 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 0.07s
avrdude.exe: verifying ...
avrdude.exe: 68 bytes of flash verified
avrdude.exe: safemode: Fuses OK (H:FF, E:99, L:E1)
avrdude.exe done. Thank you.