roboforum.ru

Технический форум по робототехнике.
Текущее время: 14 авг 2025, 01:12

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с ШИМ
СообщениеДобавлено: 11 авг 2005, 15:26 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Надо сделать ШИМ на Бэйсике, в документации как-то все скудно.
Нашел пример

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down

'to set the PWM registers, just assign a value to the compare A and B registers
Compare1a = 100
Compare1b = 200

Кто нибудь знает как это работает?Или подскажите свой пример реализации ток надо обязательно на Бэйсике


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 авг 2005, 18:22 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10991
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
:lol:
тебе лабораторный практикум что ли задали ?
ктож его вспомнит то бейсик ...
поробуй на робоклубе спроси в форуме там где детишки тусуются с лего машинками - они бейсик хорошо знают.
Это не шутка если что.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 авг 2005, 20:21 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Таблица 12. Установка режима совпадения при работе ШИМ
-------T-------T-----------------------------------------------------¬
¦COM1A1¦COM1A0 ¦Влияние на вывод OC1                                 ¦
+----------+-------+-----------------------------------------------------+
¦0                 0       не подключен                                         ¦
+---------+--------+------------------------------------------------+
¦0                  1         ¦не подключен                                         ¦
+------+-----------+--------------------------------------------------+
¦1        ¦0     ¦очищается при совпадении, для возрастания  счетчика и¦
¦                ¦сбрасывается для уменьшения (неинвертирующий ШИМ)    ¦
+------+-------+-----------------------------------------------------+
¦1     ¦1      ¦очищается при совпадении, для уменьшения счетчика и  ¦
¦      ¦       ¦сбрасывается для возрастания (инвертирующий ШИМ)     ¦
L------+-------+------------------------------------------------------




Что значит "очищается"? Мне надо знать когда он имеет значение лог 1 или лог 0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2005, 10:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10991
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
Бррр, ничего не понял, откуда этот кусок ?
я так не врубился что значит эта шифровка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2005, 13:27 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Да я уже понял кое что
Config Timer1 = Pwm , Pwm = 8 устанавливает таймер в 8 битный решим
Compare A Pwm = Clear Up в com1a1 записывает 1, а в COM1A0 0,то есть вывод oc1 "очищается при совпадении, для возрастания счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)", я не понимаю что значит очищается? Насколько я понял из документации таймер работает как реверсивный счетчик, и считает сначала до 255(если режим 8 битный) а потом назад, и только потом сбрасывается,таймер постоянно сверяет свое значение с OCR1A, и в зависимости от значений com1a1 и com1a0 происходит событие если com1a1=1 и com1a0=0 то выход oс1 "очищается при совпадении, для возрастания счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)"
если com1a1=1 и com1a0=1 то oc1 "очищается при совпадении, для уменьшения счетчика и сбрасывается для возрастания (инвертирующий ШИМ)"

Я не понимаю когда oc1 = 1 а когда 0, вот что мне надо,я не понимаю что значит "очищается" и "сбрасывпется"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2005, 15:27 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Я кажись понял. объясню свои мысли на примере at90s2313
1)Таймер/счетчик 1 работает как реверсивный счетчик.
2)Config Timer1 = Pwm , Pwm = 8 таймер устанавливается в 8 битный режим шим,конечное значение таймера 255,частота шим Ftc1/510
3)Compare A Pwm = Clear Up ,устанавливается неинвертирующий шим
4)Compare1a = 100, OCR1A присваевается значение 100.

В момент начала отсчета таймера, portb3(oc1) имеет лог 1,когда таймер досчитывает до 100,portb3 принимает значение лог 0, далее таймер считает до 255 и начинает считать обратно, когда он опять досчитывает до 100 portb3 принимает значение лог 1, когда он досчитывает до 0,происходит сброс и цикл повторяется снова.

Я правильно понял? Мне кто нибудь скажет? :?:

Далее,бэйсик Г с большой буквы эт я уже понял,т.к как в at90s2313  один режим шим а в atmega 8 например есть быстрый шим, шим с фазовой коррекцией и шим с фазовой и частотной коррекцией, в бэйсике нет возможности выбора этих режимов,поэтому про атмегу можно забыть.
Вопрос:если я себе куплю книжку по ассемблеру я пойму как для контроллеров писать проги?Она ведь просто вроде как для компа?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2005, 16:37 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10991
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
вот пример ШИМ на ASM
http://www.roboforum.ru/viewtopic.htm?t=186
правда это шим на таймере.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 сен 2005, 22:46 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Config Timer1 = Pwm ,prescale =1, Pwm = 8 , Compare A Pwm = Clear down,

вот она правильная строчка :D
нашел пример на usenet,народ там есть реально ВСЕ,у кого че не получается топайте туда(http://groups.google.com/-поисковик)
Теперь вот какой вопрос, какая оптимальная частота шима?Двигатель у меня маленький,леговский.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 сен 2005, 13:33 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10991
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
да пофигу, сколько получится
от сотен герц до десятков килогерц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 сен 2005, 19:22 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
ясно. Но я уже начал ассемблер учить. не подскажете где можно получить информацию для новичка? Мне бы про самое основное почитать а дальше сам разберусь. И еще хотел бы посмотреть на различные примеры программ, с комментариями естественно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 сен 2005, 19:28 
Не в сети
Аватара пользователя

Зарегистрирован: 22 янв 2005, 21:47
Сообщения: 60
Откуда: Нетешин Хмельницкая обл. Украина
Первым делом нужно изучить сам контроллер, потом систему команд. Если конечно все это подкреплено хоть какими то знаниями по схемотехнике.
примеры приминения (правда на английском) можно посмотреть здесь:
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
А если что конкретно будет не понятно то спрашивай...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 сен 2005, 19:33 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Я это уже все видел, мне нужно почитать про основные понятия, типа что такое флаги как ими пользоваться, зачем нужен стек ну и прочее. В общем самые самые основы...
Я за ассемблер взялся так как в бэйсике кое какие функции плохо реализованы, но от него я отказываться не собираюсь, просто не хочу ограничивать себя рамками встроенных функций. И вообще мне не понятно всеобщее пренебрежение к этому языку, не надо равнять бэйсик для компа и для микроконтроллеров. на компьютере действительно удобнее писать на С т.к есть полно библиотек и время уходит на составление кода а не на рутиную работу(вывод на жк,включение шим,ацп и прочее),  бэйсик для микрокотроллеров имеет столько встроенных функций что С даже и не снилось,да многое у него сделано криво но ведь есть ассемблерные вставки. По моему связка асм и бэйсик гораздо лучше чем например С, так как бэйсик позволяет создавать простой, понятный со множеством функций(там даже есть отправка и прием rc5 и rc6 кода) код, а асм поможет справитс с недочетами бэйсика и решить задачи которые там не предусмотрены. Ведь сложною логику робота гораздо удобнее писать на понятном языке. Разве я не прав?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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