тебе лабораторный практикум что ли задали ? ктож его вспомнит то бейсик ... поробуй на робоклубе спроси в форуме там где детишки тусуются с лего машинками - они бейсик хорошо знают. Это не шутка если что.
Таблица 12. Установка режима совпадения при работе ШИМ -------T-------T-----------------------------------------------------¬ ¦COM1A1¦COM1A0 ¦Влияние на вывод OC1 ¦ +----------+-------+-----------------------------------------------------+ ¦0 0 не подключен ¦ +---------+--------+------------------------------------------------+ ¦0 1 ¦не подключен ¦ +------+-----------+--------------------------------------------------+ ¦1 ¦0 ¦очищается при совпадении, для возрастания счетчика и¦ ¦ ¦сбрасывается для уменьшения (неинвертирующий ШИМ) ¦ +------+-------+-----------------------------------------------------+ ¦1 ¦1 ¦очищается при совпадении, для уменьшения счетчика и ¦ ¦ ¦ ¦сбрасывается для возрастания (инвертирующий ШИМ) ¦ L------+-------+------------------------------------------------------
Что значит "очищается"? Мне надо знать когда он имеет значение лог 1 или лог 0
Да я уже понял кое что 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, вот что мне надо,я не понимаю что значит "очищается" и "сбрасывпется"
Я кажись понял. объясню свои мысли на примере 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 например есть быстрый шим, шим с фазовой коррекцией и шим с фазовой и частотной коррекцией, в бэйсике нет возможности выбора этих режимов,поэтому про атмегу можно забыть. Вопрос:если я себе куплю книжку по ассемблеру я пойму как для контроллеров писать проги?Она ведь просто вроде как для компа?
вот она правильная строчка нашел пример на usenet,народ там есть реально ВСЕ,у кого че не получается топайте туда(http://groups.google.com/-поисковик) Теперь вот какой вопрос, какая оптимальная частота шима?Двигатель у меня маленький,леговский.
ясно. Но я уже начал ассемблер учить. не подскажете где можно получить информацию для новичка? Мне бы про самое основное почитать а дальше сам разберусь. И еще хотел бы посмотреть на различные примеры программ, с комментариями естественно.
Первым делом нужно изучить сам контроллер, потом систему команд. Если конечно все это подкреплено хоть какими то знаниями по схемотехнике. примеры приминения (правда на английском) можно посмотреть здесь: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 А если что конкретно будет не понятно то спрашивай...
Я это уже все видел, мне нужно почитать про основные понятия, типа что такое флаги как ими пользоваться, зачем нужен стек ну и прочее. В общем самые самые основы... Я за ассемблер взялся так как в бэйсике кое какие функции плохо реализованы, но от него я отказываться не собираюсь, просто не хочу ограничивать себя рамками встроенных функций. И вообще мне не понятно всеобщее пренебрежение к этому языку, не надо равнять бэйсик для компа и для микроконтроллеров. на компьютере действительно удобнее писать на С т.к есть полно библиотек и время уходит на составление кода а не на рутиную работу(вывод на жк,включение шим,ацп и прочее), бэйсик для микрокотроллеров имеет столько встроенных функций что С даже и не снилось,да многое у него сделано криво но ведь есть ассемблерные вставки. По моему связка асм и бэйсик гораздо лучше чем например С, так как бэйсик позволяет создавать простой, понятный со множеством функций(там даже есть отправка и прием rc5 и rc6 кода) код, а асм поможет справитс с недочетами бэйсика и решить задачи которые там не предусмотрены. Ведь сложною логику робота гораздо удобнее писать на понятном языке. Разве я не прав?