Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » вопрос новичка

Страниц (1): [1]
 

1. Too Short - 28 Декабря, 2008 - 18:48:53 - перейти к сообщению
Собрал схему с мигающим светодиодом на контролере ATmega16L. Все работает, но возникло пару вопросов.

Первое. Задержка _delay_ms(); не совпадает по времени, у меня одна секунда получается при задержке примерно 120 !
Почему так?

Второе. Както странно ведет себя компилятор (WinAvr). Когда я попытался использовать функцию delay(); которая есть в примерах на сайте, то обнаружил что в бинарник она вообще не попадает, он не меняется даже в размерах когда я вставляю/удаляю этот кусок кода, и соответственно программа ведет себя так, как будто его просто нет.

В чем может быть проблема?

Надеюсь что написал понятно Улыбка
2. бот_м_16 - 28 Декабря, 2008 - 20:43:11 - перейти к сообщению
1)ms это милисекунда одна секунда=1000милисекунд Подмигивающий !!! Такое возможно если вы неправильно указали компилятору частоту тактирования мк Голливудская улыбка
2)А что такое бинарник Замешательство , а можно сходник поглядеть? не в себе
3. darkblue - 29 Декабря, 2008 - 10:50:26 - перейти к сообщению
Я пользуюсь CodeVisionAVR ,в нём всё работает
4. Too Short - 29 Декабря, 2008 - 14:07:07 - перейти к сообщению
Первый вопрос снимаю! Почему нигде не написано, что нужно прописывать фьюзы?

Цитата:
2)А что такое бинарник Замешательство , а можно сходник поглядеть? не в себе

Бинарником я назвал файл hex который мы прошиваем.

Исхожник сейчас такой:

CODE:


#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL // 8 MHz



int main(void) // начало основой программы
{

DDRD = 0xff; // все выводы порта D сконфигурировать как выходы



while (1) { // Ѕесконечный цикл

//PORTD = 0xff; // установить "1" на всех лини€х порта D
PORTD |= _BV(PD0);
PORTD &= ~_BV(PD1); //Ѕит 1 погас


_delay_ms(50); // ∆дем


//PORTD = 0x00; // установить "0" на всех лини€х порта D
PORTD &= ~_BV(PD0); //Ѕит 0 погас
PORTD |= _BV(PD1); // Ѕит 1 горит
_delay_ms(15); // ∆дем



} // закрывающа€ скобка бесконечного цикла

} // закрывающа€ скобка основной программы
5. бот_м_16 - 29 Декабря, 2008 - 17:40:51 - перейти к сообщению
По томучто предполагается что вы это знаете смех (Проверка на лоха если не задался этим вопросом то не понимаеш что делаеш а если понимаеш то задаёшся этим вопросом МОЛОДЕЦ! Улыбка )