roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 24 авг 2008, 01:41

regenerator писал(а):Не понял зачем ~= перед if ?

это математический жаргон :) ~= означает эквивалентность.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 02:38

Что будет с переменной "a", если:
Код: Выделить всёРазвернуть
unsigned long int a;
a=0;
while (1)
{a=-4500;}

?
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 24 авг 2008, 10:52

regenerator писал(а):Что будет с переменной "a" ?

наверно она будет содержать:
(максимальное число хранимое в unsigned long int) - 4500 + 1
и потом уменьшаться на 4500 каждый раз и иногда опять уходя в огромное число.

=== Скачайте ШАБЛОН для быстрого старта на первой страничке топика и проверьте быстренько что будет в симуляторе - на 5 минут делов то !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 24 авг 2008, 11:21

2avr123: там "=-", а не "-=" вроде...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 24 авг 2008, 11:27

=DeaD= писал(а):2avr123: там "=-", а не "-=" вроде...

Ну тогда наверно будет всегда: (максимальное число хранимое в unsigned long int) - 4500 + 1
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 12:14

А можно сделать так, чтоб МК выполнял две задачи одновременно?
Например, первая функция каждую секунду прибавляет к "a" единицу:
Код: Выделить всёРазвернуть
while (1)
{
delay_ms(1000);
a++;
}

А вторая прибавляет к "a" четыре и сохраняет результат в "b":
Код: Выделить всёРазвернуть
while (1)
{
b=a+4;
}

Естественно значение "b" должно, как и a, каждую секунду расти на единицу.
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 24 авг 2008, 12:23

Сделать в одном while
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 12:40

Нет. Так нельзя.
Нужно, чтоб вторая функция делала "b=a+4;" с частотой процессора, ну или близкой к ней. В общем как минимум в 1000 раз быстрее.

Добавлено спустя 1 минуту 47 секунд:
Я понимаю, что в этом нет никакого смысла, но это только пример.
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 24 авг 2008, 12:55

2regenerator: А не проще ли курс какой-нибудь про МК почитать или хотя-бы даташит к МК, чтобы понять его возможности? А то знания в режиме да-нет-ки получать - не самый эффективный способ. Отдельно освойте какие возможности в самом МК содержатся, а дальше понятно что можно программно многозадачность сделать, но только эффективность её будет так себе, да и ресурсов сожрёт.

По поводу параллельных действий - есть таймеры и прерывания по таймеру.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 13:07

Вот мой код. Это таймер на 7 сегментных индикаторах.
Первый while (1) таймер, второй дешифратор.
Ясно дело не пашет. Второй цикл(дешифратора) не начинается.
Помогите, пожалуйста.
Вложения
cd.c
(2.81 КиБ) Скачиваний: 197
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 24 авг 2008, 13:23

Посмотрите http://easyelectronics.ru/avr-uchebnyj- ... jmery.html и аналогичные источники полезной информации по AVR в рунете.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 14:52

Дак я же на Си пишу. Причём тут асемблер.
Я Си то ели понимаю.
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 24 авг 2008, 16:34

regenerator писал(а):Я Си то ели понимаю.

А начало топика читали ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 16:57

Если вы имеете виду ваш курс, то я его прочитал.
Мало что понял и полностью запутался.

За первое виню только самого себя, за то, что я такой вот непонятливый.
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 24 авг 2008, 17:31

А даташит пробовали читать? И вообще МК какой-то уже выбрали? Потому что то, что вы сейчас спрашиваете в коде может быть прописано уже только под конкретный МК.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4