roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 ноя 2024, 06:34

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29, 30 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 28 окт 2007, 17:21 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Dunkan писал(а):
Myp писал(а):
мелкая строчка оказалась намного важнее для меня, чем огромные красные буквы


Сообщите какая. Я выделю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 28 окт 2007, 17:32 
Не в сети
Аватара пользователя

Зарегистрирован: 02 май 2007, 20:33
Сообщения: 33
Откуда: Hamburg, Германия
avr123.nm.ru писал(а):
Сообщите какая. Я выделю.


дело не в одной конкретной строке. весь курс написан так, что тяжело читать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 28 окт 2007, 18:19 
Не в сети
Аватара пользователя

Зарегистрирован: 14 июл 2007, 23:38
Сообщения: 346
Откуда: SPb
прог. языки: немного албанский
Чесности ради замечу, что на эту книгу есть ссылка в "курсе", она выложена в архиве вместе с FAQ по курсу. Так что господину АВР большое человеческое спасибо :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 28 окт 2007, 19:39 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
steel_monkey писал(а):
качайте книжку "Pardue J.C programming for microcontrollers.2005" со страницы http://ihtik.lib.ru/dreamhost_electrote ... v2007.html (799 в списке), распечатывайте и читайте. Книга на английском, но написана очень толково, структурировано, с примерами.


Я давно уже (18 янв 2007) сделал топик об этой книге и указал где скачать У НАС
В БИБЛИОТЕКЕ форума.
viewtopic.php?f=19&t=2031


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 28 окт 2007, 19:41 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Dunkan писал(а):
курс написан так, что тяжело читать


Добрые люди делают так - http://www.123avr.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 28 окт 2007, 21:35 
Не в сети
Аватара пользователя

Зарегистрирован: 02 май 2007, 20:33
Сообщения: 33
Откуда: Hamburg, Германия
ну извиняйте, если что не так. я просто высказал своё мнение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 01 ноя 2007, 03:17 
Не в сети
Аватара пользователя

Зарегистрирован: 14 июн 2007, 09:39
Сообщения: 19
Откуда: Благовещенск
А есть чтонить подобное книги Pardue J.C programming for microcontrollers.2005 только на русском? А то я в англиском не силен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 01 ноя 2007, 08:25 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Есть вот такое
Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. МК-Пресс, Киев, 2006.djvu


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 01 ноя 2007, 10:39 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Master писал(а):
Есть вот такое
Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. МК-Пресс, Киев, 2006.djvu

лежит на фтп робофорума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 05 дек 2007, 00:29 
Не в сети

Зарегистрирован: 02 дек 2007, 16:28
Сообщения: 11
Приветствую всех, господа!) Я смотрю в последнее время в этой части форума активность не бьет рекорды)), может быть мы это поправим, а заодно поможем мне советом)?

Господа прошу вас помочь в таком плане. Думаю, многим это будет также интересно. Дело в том, что многие из нас при более или менее сносном знании основ языка программирования на первых же порах сталкиваются с проблемой такого понятия как алгоритм... Знать, как работают операторы ветвления и циклов, дело одно, совершенно другое - это понять, как с помощью ограниченного количества команд воплотить все не дюжие амбиции начинающего “емббедера”... Теперь непосредственно задача: С помощью языка C (для мк AVR) реализовать программу опрашивающую некоторое количество кнопок и в зависимости от них соответствующе действовать. Программа разделена на несколько функций-подпрограмм (например: АЦП и его вывод на ЖКИ, измерение температуры и вывод ее на тот же ЖКИ) выполнение между которыми переключается последовательным нажатием одной из кнопок (MODE). Начавшись однажды, выбранная функция должна работать незавершаясь до следующего нажатия MODE. Что бы не загромождать пост лишним кодом, приведу только каркас одной из программ (компилятор CodeVision AVR 1.25.5):

Код:
#define BUTTON_PLUS     PINx.x
#define BUTTON_MINUS  PINx.x
#define BUTTON_MODE   PINx.x

char mode = 1;


interrupt [TIM0_OVF] void timer0_ovf_isr(void)  //Переполнение по timer_0 (3906Khz)
{
     if(!BUTTON_MODE)  //Если нажата клавиша MODE
    {
         mode ^= 1;    //При каждом нажатии клавиши, менять режим
    }
   
    if(mode == 0)
    {
        func_x();
    }   
       else     
      {
          func_y();
      }
}


void func_x(void)
{
     #asm("cli") //прерывания: выкл.

     while(BUTTON_MODE) //Делать пока не нажата клавиша смены режима
    { 
       ..... //Тело func_x
    }
   
    #asm("sei") //прерывания: вкл.
}


void func_y(void)
{
     #asm("cli") //прерывания: выкл.

     while(BUTTON_MODE) //Делать пока не нажата клавиша смены режима
    { 
       ..... //Тело func_y
    }

    #asm("sei") //прерывания: вкл.
}


Пример я это привел из-за сомнения в его оптимальности... У меня есть определенные сомнения насчет момента нажатия клавиши MODE – получится, что при нажатии функция должна закончить свое выполнение и в тот же момент перейти в тело функции timer0_ovf_isr, насколько оптимален такой подход? Может у кого-то есть свои идеи, которыми он может поделиться?
Второй момент который меня подтолкнул на написание этого поста – тот факт что приведенный выше пример являет собой наверное самый простой метод в работе с клавишами и их опросом. Но существуют ведь и различные вариации на эту тему, в одном из случаев у меня возник вот такой момент:
Имеется абсолютно такого же принципа программка, что и приведенная выше, за исключением работы одной из функций – в ней происходит управление работой ШИ-регулятора МК (реализуется попросту простейший “реобас”) и функция должна соответственным образом уметь изменять величину заполнения (не знаю насколько справедлив такой термин, но в известном всем курсе avr123.nm.ru это называется “величина ШИМ”) в зависимости от состояния присутствующих на внешних входах МК, кнопок “ПЛЮС” и “МИНУС”, то есть по сути цель функции инкрементировать \ декрементировать регистр OCR1xx. Так вот если применить выше представленный пример то работать это конечно же не будет – пока не нажата клавиша смены режима, ни на какие действия в отношении других кнопок, программа реагировать не будет... Естественно возникает желание сделать логическое “И” между клавишей MODE и двумя оставшимися... К сожалению все усугубляется отсутствием работающего девайса, на котором можно провести эксперименты и отладку, мною используется все известный симулятор ISIS из пакета Proteus (7.1 SP2) в котором подобная затея успехом не венчалась, имеются проблемы. Не вдаваясь в их суть, хочу опять таки спросить, если у кого-то свои идеи по этому поводу? (Я имею виду реализацию таких функций). Неужели придется вешать кнопку MODE на внешнее прерывание?
Тем, кто хотел бы мне помочь прилагаю ссылку на архив с проектом (схема в ISIS, проект в CVAVR) где собственно у меня и возникают сомнения насчет оптимальности используемого алгоритма (отмечаю сразу в ISIS все работает, причем “на глаз” даже вполне нормально, просто хочется узнать мнение по поводу рациональности того “бардака” что пришлось организовать...)
http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=26068&filename=Device_X.rar


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 10 дек 2007, 13:06 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Я бы советовал быть в обработчике прерывания как можно меньше времени.

1) Опрашивать кнопки из таймера - это как то не очень...
2) ...лучше уж аппаратные прерывания на них повесить.
3) Что-б не занимать прерывния долго, по его приходу взводите переменую "флаг", а потом в основном цикле обрабатываете и сбрасываете флаг.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 23 дек 2007, 12:45 
Не в сети

Зарегистрирован: 23 дек 2007, 11:09
Сообщения: 3
Добрый день.
Столкнулся с проблемой. разабатываю блок питания на МК atmega8.
Не могу реализовать режим стабилизации по току.
Пробовал вот так ток скачет даже на стабильной нагрузке +-200мА
да еще и скорость реакции медленная
Код:
//Режим стабилизации по току
       /* if (Vdec>ZNACH_STAB) {   //если измеренное больше установленного
            if (OCR2!=0) {         //ограничение по границам байта
           
                 delay_ms(10);
                 OCR2--; };};    //уменьшить значение ШИМ
                             
         if (Vdec<ZNACH_STAB) {  //если измеренное меньше установленног
            if (OCR2!=255) {       //ограничение по границам байта
                   delay_ms(10);
                  OCR2++;}; };     //увеличить значение ШИМ 

Пробовал увеличить разрядность для более тонкой настройки, ток скачет вообще в пределах 1А
Код:
//использование для регулирования ШИМ значения меньше 1
//(увеличение разрядности
unsigned int reaction;

if (Vdec > ZNACH_STAB & reaction!=0)


reaction--;
else if (Vdec < ZNACH_STAB & reaction!=0xFFFF)

  reaction++;
   
OCR2 = reaction >> 2 ;};

Помогите пожалуйста.
Может кто-нибудь подскажет алгоритм ПИД регулирования на конкретном примере или применительно к моему случаю?


Последний раз редактировалось Vooon 23 дек 2007, 12:51, всего редактировалось 1 раз.
CODE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 23 дек 2007, 13:07 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Вот посмотри:

http://model.exponenta.ru/z_tf_pid.html

http://avr123.nm.ru/07.htm внизу список апноутов - по ПИД номер на 200 и в апноутах по электроприводу применяется - это на 49х.

Простейший пид в AN532 у микрочип, посложней в AN699 - они на картинке на ПЕРВОЙ странице этого топика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 23 дек 2007, 14:02 
Не в сети

Зарегистрирован: 23 дек 2007, 11:09
Сообщения: 3
Ну а вприведенном мною коде можно ли как-нибудь добиться стабильности? Или только использование ПИД?
Я просто никогда не сталкивался с ПИД регулированием. И не очень понимаю как его программно реализовать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 23 дек 2007, 14:11 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
посмотрите appnote AVR221
там и реализация алгоритма на Си (и несложно переписать в класс С++)
под IAR но легко переписывается под другие компиляторы, почти все стандартный си.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29, 30 ... 144  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO