Страница 1 из 1

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

Добавлено: Вс мар 16, 2014 19:01:35
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;


};

};

}
Изображение

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

Добавлено: Вс мар 16, 2014 19:48:20
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]

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

Добавлено: Вс мар 16, 2014 19:49:16
Аlex
но мне не ясно какие значения тут поставить
Даташит покурите на ваш МК, там есть ответ на этот вопрос.
завтра сдать нужно
Раньше нужно было думать, товарищ студент :))

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

Добавлено: Вс мар 16, 2014 20:15:07
DesireUA
Ну я ж тут уже все сделал только где то ошибка...не с пустыми ж руками пришел просить что бы за меня сделали..

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

Добавлено: Вс мар 16, 2014 20:20:18
dr.doc
Тактовая частота в программе (из нее рассчитываются задержки) и в протезе разная.

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

Добавлено: Вс мар 16, 2014 20:21:21
DesireUA
dr.doc писал(а):Тактовая частота в программе (из нее рассчитываются задержки) и в протезе разная.
Какую частоту в протезе поставить?

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

Добавлено: Вс мар 16, 2014 20:26:40
DesireUA
Поставил 8мгц вроде работает, спасибо, думаю все правильно

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

Добавлено: Вс мар 16, 2014 20:30:39
DesireUA
Ошибся не сохранил прогу с новой задержкой, с 2.5 секунд, по прежнему не работает с частотой 8мгц

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

Добавлено: Вс мар 16, 2014 20:33:33
DesireUA
Нет все работает))) спасибо, я просто уже засиделася...и не правильно прошивку залил на микроконтроллер..