ATMEGA 8 не могу найти ошибку в программе

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

Ребята выручайте я в это очень плохо понимаю, стряпал по кускам программу, вроде все правильно но не чего не работает, писал на форум программистов, мне ответили но из за своей не компетентности в данном вопросе я не чего не могу понять, можете конкретно указать строчки в коде где что поменять. Задача стоит подключить 4 светодиода, что бы при нажатии кнопки они по очереди включались бесконечное количество раз с интервалом 2.5сек. Программа и схема в исис прилагается. Задержки я выставил порты вроде правильно выбрал, но мне не ясно какие значения тут поставить
PORTB=0x00;
DDRB=0x00;

PORTC=0b00000001;
DDRC=0b00001110;

PORTD=0x00;
DDRD=0x00;
Очень прошу помощи, завтра сдать нужно, я уже целый день просидел, уже от фонаря подбирал числа, не чего не понимаю. Ище буду благодарен за литературу по микроконтроллерам для начинающих, хочу поже изучить.

Программа
#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0x00;

PORTC=0b00000001;
DDRC=0b00001110;

PORTD=0x00;
DDRD=0x00;

while (1)
{

if (!PINC.0){

PORTC.1=1;
delay_ms(2500);
PORTC.1=0;

PORTC.2=1;
delay_ms(2500);
PORTC.2=0;

PORTC.3=1;
delay_ms(2500);
PORTC.3=0;

PORTC.4=1;
delay_ms(2500);
PORTC.4=0;


};

};

}
Изображение
Реклама
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

Немного исправил программу и начало работать только с маленькой задержкой, плана 100мс, с 2.5 секунды не работает

Код
[CSHARP]#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0x00;

PORTC=0;
DDRC=0xFF;

PORTD=0x00;
DDRD=0x00;

while (1)
{


if (!PINC.0){


PORTC.1=1;
delay_ms(2500);
PORTC.1=0;

PORTC.2=1;
delay_ms(2500);
PORTC.2=0;

PORTC.3=1;
delay_ms(2500);
PORTC.3=0;

PORTC.4=1;
delay_ms(2500);
PORTC.4=0;


};

};

}
[/CSHARP]
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

но мне не ясно какие значения тут поставить
Даташит покурите на ваш МК, там есть ответ на этот вопрос.
завтра сдать нужно
Раньше нужно было думать, товарищ студент :))
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

Ну я ж тут уже все сделал только где то ошибка...не с пустыми ж руками пришел просить что бы за меня сделали..
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

Тактовая частота в программе (из нее рассчитываются задержки) и в протезе разная.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

dr.doc писал(а):Тактовая частота в программе (из нее рассчитываются задержки) и в протезе разная.
Какую частоту в протезе поставить?
Реклама
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

Поставил 8мгц вроде работает, спасибо, думаю все правильно
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

Ошибся не сохранил прогу с новой задержкой, с 2.5 секунд, по прежнему не работает с частотой 8мгц
Родился
Сообщения: 7
Зарегистрирован: Вс мар 16, 2014 17:24:42

Сообщение DesireUA »

Нет все работает))) спасибо, я просто уже засиделася...и не правильно прошивку залил на микроконтроллер..
Ответить

Вернуться в «AVR»