Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 30, 2011 22:25:30
Вымогатель припоя
Зарегистрирован: Вт сен 15, 2009 16:23:06 Сообщений: 693 Откуда: Москва
Рейтинг сообщения:0
В се просто. Мне нужно после получения значений для шима приостановить исполнение основного цикла программы на время от 5 до 10 секунд. Время задержки генерируется таким кодом
Код:
Do temp5=RND(11) Loop until temp5>4 AND Temp5<11 Wait Temp5
если так то переодически без всякой закономерности диод мергает. Причём может 5 минут нормально работать а потом начать мергать.
А вот если написать просто Wait 10 то не мергает. Даже если написать Wait 100.
_________________ Только абсолютная пустота бездны принесёт мне покой.
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт фев 01, 2011 19:00:23
Вымогатель припоя
Зарегистрирован: Вт сен 15, 2009 16:23:06 Сообщений: 693 Откуда: Москва
Рейтинг сообщения:0
ВНН писал(а):
Почувствуй разницу : По прерыванию - и задержка по ходу выполнения. PS.Ктото при удержание цвета забыл отключить прерывание А ТАЙМЕР ТИКАЕТ.
Весь прикол в том что при задании задержки константой нефига немигает. И зачем отключать таймер? Вдобавок даная программа, но на С работает нормально без глюков.
_________________ Только абсолютная пустота бездны принесёт мне покой.
Извини бегло посмотрел исходник и всуть не вник. Если память не изменяет WAIT неможет работать с переменными А=100 WAIT A Только WAIT 100 А задержку можно реализовать через таймер считая количество тиков.
_________________ Я тоже белый и пушистый и также как и Вы ловлю мышей. С уважением ВНН.
Вопрос знатокам. Нужно делать из 32х бит 9-и разрядное десятичное число для индикации. Места маловато - attiny13. Что будет меньше места занимать? Средства языка, с использованием текстовых строк и STR(x) где x переменная long, 4 байта или ассемблерная вставка с преобразованием 4х байт в BCD (ASCII)? Или есть другой стандартный и легкий способ?
Да, и еще такая штука есть, FastLCD. И для баскома и под этот дисплей... Не проверял только.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Последний раз редактировалось edm2007 Ср фев 02, 2011 20:21:26, всего редактировалось 1 раз.
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср фев 02, 2011 20:14:44
Вымогатель припоя
Зарегистрирован: Вт сен 15, 2009 16:23:06 Сообщений: 693 Откуда: Москва
Рейтинг сообщения:0
Сылки там видут на сайт требующий регистрации, но всеравно спасибо.
И ещё. Может кто подскажет как правильно работать с таймерами в ркежиме ШИМ на микроконтролере Attiny85. Если я правыильно понял в Attiny85 два двухканальных 8 битных таймера. Как правыильно настроить их в Bascom.
_________________ Только абсолютная пустота бездны принесёт мне покой.
Нет, только что посмотрел, все спокойно скачивается, регистрация не нужна.
А программа вот:
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт фев 04, 2011 18:40:45
Поставщик валерьянки для Кота
Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15 Сообщений: 2106 Откуда: Старые Васюки
Рейтинг сообщения:0
Кто в курсе, почему глючит следующий код:
Код:
Config INT0=Falling ;Прерывание по отрицательному фронту сигнала на INT0 On INT0 metka_int0 Enable Interrupts
Start: Disable Int0 ;Временно выключаем прерывание по INT0
;Здесь выполняем некий длинный код, во время которого меняется сигнал на INT0
Wait 10 ;Пауза после выполнения кода, в этот период изменений сигнала на INT0 гарантированно нет
Enable Int0 ;Включаем прерывание по INT0
Goto Start
metka_int0: Set Led ;Зажигаем светодиод
МК MEGA162. Глюк в следующем: светодиод всегда зажигается прямо в момент разрешения прерывания INT0! При том, что должен бы загораться только по отрицательному фронту сигнала на этом выводе. Значение задержки Wait только меняет момент ложного срабатывания этого прерывания. Такое ощущение, что во время запрета прерываний они всё равно как-то фиксируются и "выстреливают" в момент их разрешения. Это нормально или имеет место глюк Баскома?
_________________ Даже остановленные часы два раза в сутки показывают правильное время.
Код не глючит. Просто Вы неправильно понимаете систему прерываний. Если условие для прерывания происходит, то выставляется флаг прерывания. И если это прерывание разрешено, оно выполняется. Если Вы запретили прерывание, оно не будет выполняться. Но если Вы его разрешите и был установлен флаг, то оно обязательно выполнится. В Вашей ситуации нужно бы ручками перед разрешением прерывания, очистить его флаг. Флаги также автоматом сбрасываются при обработке прерываний.
Глюк в следующем: светодиод всегда зажигается прямо в момент разрешения прерывания INT0! При том, что должен бы загораться только по отрицательному фронту сигнала на этом выводе. Значение задержки Wait только меняет момент ложного срабатывания этого прерывания.Такое ощущение, что во время запрета прерываний они всё равно как-то фиксируются и "выстреливают" в момент их разрешения. Это нормально или имеет место глюк Баскома?
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб фев 05, 2011 00:29:04
Поставщик валерьянки для Кота
Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15 Сообщений: 2106 Откуда: Старые Васюки
Рейтинг сообщения:0
aleksey_gregul писал(а):
В Вашей ситуации нужно бы ручками перед разрешением прерывания, очистить его флаг.
Всё ясно, я так и подозревал, и более того – уже решил проблему именно так. Точно так же, как с DTMFOUT и ручной очисткой таймера. Просто по наивности ожидал, что это должен бы делать сам Баском.
Ссылка не открывается, но если там тоже про регистры/флаги/ассемблер AVR, то я и так в курсе. Просто от ЯВУ ждал большей автоматизации подобной рутины.
_________________ Даже остановленные часы два раза в сутки показывают правильное время.
Просто по наивности ожидал, что это должен бы делать сам Баском.
Так а если не нужна очистка флага прерываний перед разрешением? Ели наоборот нужно чтобы сей факт был зафиксирован?
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
А что же, там настройка отличается от стандартной?
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения