роботы робототехника микроконтроллеры


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

> Без описания
Too Short Post Id


Рядовой


Сообщений всего: 2
Дата рег-ции: Дек. 2008  



Собрал схему с мигающим светодиодом на контролере ATmega16L. Все работает, но возникло пару вопросов.

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

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

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

Надеюсь что написал понятно Улыбка
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



1)ms это милисекунда одна секунда=1000милисекунд Подмигивающий !!! Такое возможно если вы неправильно указали компилятору частоту тактирования мк Голливудская улыбка
2)А что такое бинарник Замешательство , а можно сходник поглядеть? не в себе
 
 Top
darkblue Супермодератор Post Id



Супермодератор


Сообщений всего: 403
Дата рег-ции: Нояб. 2008  



Я пользуюсь CodeVisionAVR ,в нём всё работает
 
 Top
Too Short Post Id


Рядовой


Сообщений всего: 2
Дата рег-ции: Дек. 2008  



Первый вопрос снимаю! Почему нигде не написано, что нужно прописывать фьюзы?

Цитата:
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); // ∆дем



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

} // закрывающа€ скобка основной программы

(Отредактировано автором: 29 Декабря, 2008 - 17:31:05)

 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



По томучто предполагается что вы это знаете смех (Проверка на лоха если не задался этим вопросом то не понимаеш что делаеш а если понимаеш то задаёшся этим вопросом МОЛОДЕЦ! Улыбка )
 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru