тебе лабораторный практикум что ли задали ? ктож его вспомнит то бейсик ... поробуй на робоклубе спроси в форуме там где детишки тусуются с лего машинками - они бейсик хорошо знают. Это не шутка если что.
Таблица 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://www.atmel.com/dyn/products/app_notes.asp?family_id=607 А если что конкретно будет не понятно то спрашивай...
Я это уже все видел, мне нужно почитать про основные понятия, типа что такое флаги как ими пользоваться, зачем нужен стек ну и прочее. В общем самые самые основы... Я за ассемблер взялся так как в бэйсике кое какие функции плохо реализованы, но от него я отказываться не собираюсь, просто не хочу ограничивать себя рамками встроенных функций. И вообще мне не понятно всеобщее пренебрежение к этому языку, не надо равнять бэйсик для компа и для микроконтроллеров. на компьютере действительно удобнее писать на С т.к есть полно библиотек и время уходит на составление кода а не на рутиную работу(вывод на жк,включение шим,ацп и прочее), бэйсик для микрокотроллеров имеет столько встроенных функций что С даже и не снилось,да многое у него сделано криво но ведь есть ассемблерные вставки. По моему связка асм и бэйсик гораздо лучше чем например С, так как бэйсик позволяет создавать простой, понятный со множеством функций(там даже есть отправка и прием rc5 и rc6 кода) код, а асм поможет справитс с недочетами бэйсика и решить задачи которые там не предусмотрены. Ведь сложною логику робота гораздо удобнее писать на понятном языке. Разве я не прав?