Программирование микроконтроллеров

Itebis

Привіт!
Статус: Offline
Реєстрація: 04.06.2019
Повідом.: 1
Программирование микроконтроллеров

Всем привет, возникла проблема с кодом. Препод злюка не хочет помогать с этим. Суть проблемы. Пишу код на микроконтроллер Atmega 32, в Atmel Studio 7.0, возникает проблема что в этом коде не работает задержка. #define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

char M, a=1, b=2;


int main(void)
{








while (1)
{
PORTA=0b00000000;
DDRA=0b11111111;
PORTB=0b00000000;
DDRB=0b11111111;
PORTC=0b00000000;
DDRC=0b11111111;
PORTA|=0b00000001;
_delay_ms(100);
PORTA|=0b00000000;
_delay_ms(300);
/*M=b;
switch (M)
{
case 1: ;
{
PORTB|=(1<<0);
_delay_ms(100);
PORTB|=(1<<0);
_delay_ms(300);


break;}
case 2: ;
{
PORTA|=(1<<0);
_delay_ms(100);
PORTA|=(1<<0);
_delay_ms(300);
PORTA|=(1<<0);
_delay_ms(300);

break;}

default :;
}/*/
}
}
Как только убираю delay ms, программа работает и Proteus показывает как диод мигает по циклу. Мне нужно что бы диод мигал с задержкой которая указана в скобках, помогите прошуу..
 
Есть доки
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


"The maximal possible delay is 262.14 ms / F_CPU in MHz."

максимальный делей при текущей тактовой частоте - 262.14 / 8 = 32.75 ms
Надо понизить тактовую частоту F_CPU, убрать один 0
 
Назад
Зверху Знизу