Припаял на PD7 ногу светодиод, микроконтроллер ATMEGA8A-PU
Подскажите правильно ли написана программа, и какую лучше книжку почитать по программированию на С, но не тому С что для Ардуино, там всё для меня уже ясно.
CODE:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
void init_io(void);
void init_io(void)
{
DDRD = (1<< PD7);
}
int main(void)
{
init_io();
for (;;)
{
PORTD |= (1 << 0);
_delay_ms(100);
PORTD = 0;
_delay_ms(100);
}
}
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
void init_io(void);
void init_io(void)
{
DDRD = (1<< PD7);
}
int main(void)
{
init_io();
for (;;)
{
PORTD |= (1 << 0);
_delay_ms(100);
PORTD = 0;
_delay_ms(100);
}
}
Заливал я так через usbasp
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blink_led.lst -std=gnu99 blink_led.c -o blink_led.o
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blink_led.o -std=gnu99 blink_led.o --output blink_led.elf -Wl,-Map=blink_led.map,--cref -lm
avr-objcopy -O ihex -R .eeprom blink_led.elf blink_led.hex
avrdude -p m8 -P COM3 -c usbasp -b 19200 -U flash:w:blink_led.hex
Но залилось успешно был только один warning cannot set sck period ,но светодиод не замигал. питался от самого usbasp ,проверял 5вольт питания есть.
Подскажите еще как на МК понять где аналоговые входы/выходы, а где цифровые, и где ШИМ, и где и как применяются, вкратце.
Моя цель подключить ,ИК дальномер, серву и L239D для управления 2мя двигателями
Что-то на ардуине всё проше, но по настоящему надо писать без всяких ардуин ,вот и учусь