BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
rotor
Родился
Сообщения: 3
Зарегистрирован: Ср июн 18, 2008 09:02:56

Сообщение rotor »

Добрый день или вечер!
Решил попробовать BASCOM AVR, столкнуля с одной проблемой.
при чтении датчика температуры ds18b20 при указанном параметре
$crystal = 4000000
прчитанные 9-ть байт не соответствут реальным, каждый байт больше в два раза, а при параметре $crystal = 1000000 или $crystal = 2000000 или $crystal = 3000000 все нормально.
Хотя команда
Reg_no(1) = 1wsearchfirst()
работает нормально при любых параметрах $crystal.
Испльзую BASCOM v1.11.9.0
Вопрос: ктонибудь сталкивался с такой проблемой если да, как с этим бороться?
Всем спасибо.
Аватара пользователя
Аксель
Опытный кот
Сообщения: 800
Зарегистрирован: Ср апр 25, 2007 09:50:43
Откуда: Киев
Контактная информация:

Сообщение Аксель »

А какой МК?
Скелет колобка состоит из черепа.
rotor
Родился
Сообщения: 3
Зарегистрирован: Ср июн 18, 2008 09:02:56

Сообщение rotor »

Аксель писал(а):А какой МК?


МК разные
Atmega8,16,8515 At90S8515, 2313.
с параметром
$crystal = 3686400 еще все работает, а вот
с $crystal = 4000000 уже проблемы.
Botsman_r61
Родился
Сообщения: 8
Зарегистрирован: Ср июл 09, 2008 17:03:59
Откуда: Donetsk

Сообщение Botsman_r61 »

Здравствуйте, многоуважаемые!
Объясните кто-нибудь мне, чайнику, почему у меня в BASCOMе (1.11.9.0) неправильно отрабатываются временные задержки?
МК мега8, настроен на работу от внутреннего тактового 1МГц, $crystal = 1000000, а Waitms 1000 делает паузу в 2 раза меньше. Пробовал и Wait и Waitms.
Это глюк или я что-то неправильно делаю?
Аватара пользователя
Аксель
Опытный кот
Сообщения: 800
Зарегистрирован: Ср апр 25, 2007 09:50:43
Откуда: Киев
Контактная информация:

Сообщение Аксель »

Параметр $crystal = 1000000
Не выставляет частоту кристала, а только сообщает компилятору, чтобы он расчитывал время задержки при компиляции.

А сама частота работы МК выставляется фьюзами.
Скелет колобка состоит из черепа.
Botsman_r61
Родился
Сообщения: 8
Зарегистрирован: Ср июл 09, 2008 17:03:59
Откуда: Donetsk

Сообщение Botsman_r61 »

Фьюзы и стоят на 1 МГц. Если несоответствие фьюзов и $crystal, тогда не опознается термометр DS18B20.
Причем, если поставить и там и там 4МГц погрешность меняется.
Программатор ChipBoom.
Аватара пользователя
Аксель
Опытный кот
Сообщения: 800
Зарегистрирован: Ср апр 25, 2007 09:50:43
Откуда: Киев
Контактная информация:

Сообщение Аксель »

В смысле "погрешность"?

За программатор я не скажу (для експеримента его лучше отключать). Как вероятная причина (не только к баскому относится): перегрузка порта(ов)/пина(ов). ...Если девайсина "отжирает" от МК больше чем положено (по даташиту ориентируемся), то МК может и работать(до поры, до времени), но при этом глючить.

Может, это, схему (как оно сейчас подключено) в студию (и код в приложении)?
И тогда кто-нибудь прокоментирует...
Скелет колобка состоит из черепа.
Botsman_r61
Родился
Сообщения: 8
Зарегистрирован: Ср июл 09, 2008 17:03:59
Откуда: Donetsk

Сообщение Botsman_r61 »

Схему рисовать не буду, все на макетке, я совсем чайник, осваиваю МК.
На PC2-5, PB0-1 висит дисплей16*2,
PD1 - DS18B20
PD2,3 - 2 кнопки,
PC0 - вх. АЦП,
PB6,7 -кварц 32768
все.

В тексте программы Waitms 1800 дает задержку около 900 мс (считал по показаниям таймера)
Вложения
radiokot.txt
(904 байт) 998 скачиваний
I_ivi
Родился
Сообщения: 9
Зарегистрирован: Пн май 15, 2006 14:24:40

Сообщение I_ivi »

А зачем Waitms 1800? Время преобразования DS18b20 - 750ms. делал на них градусники и на 2313 и на 8 меге все работает.
Botsman_r61
Родился
Сообщения: 8
Зарегистрирован: Ср июл 09, 2008 17:03:59
Откуда: Donetsk

Сообщение Botsman_r61 »

Всем спасибо, это у меня был глюк, все работает.
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

Моя обучалка BASCOM AVR.
http://www.decada.org.ru/project/lessons/bascom_avr/
Почти доделана, осталось несколько статей
Последний раз редактировалось WildCat Пн фев 15, 2010 02:57:10, всего редактировалось 1 раз.
I_ivi
Родился
Сообщения: 9
Зарегистрирован: Пн май 15, 2006 14:24:40

Сообщение I_ivi »

Даеш продолжение!!!
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

Или у меня мания величия, или я действительно неплохо делаю обучалку :)
А подробнее никто ничо не скажет? Если есть какие-то ошибки/опечатки, говорите тут, в аське или на мыло.
Аватара пользователя
pavel123
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

Спасибо, замечательная обучалка. :))
Тыркался, как слепой котенок в этот BASCOM AVR. :))
Многое стало понятным. :idea:
Жду продолжения.
Еще раз спасибо.
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Сообщение Radan »

ХОРОШО!!!
А ссылку то хоть можно выложить на форуме Васика?
А то жутко страшно насчёт рельсы :cry:
doc626ge
Родился
Сообщения: 13
Зарегистрирован: Пт дек 16, 2005 00:41:35
Откуда: самара

Сообщение doc626ge »

А почему то дальше 10-й страницы не открывается :(
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

ссылку на форум басика выкладывай и да не будет тебе рельсы в описанном месте. Можно даже и статьи перекладывать, но тут с согласованием со мной.

После 10 ничо не откроется, потому что еще не сделано) точнее 11 статью уже перевел про I2С, делаю 12 и т.д., но пока еще не выложил. Ввиду важности статей и хороших отзывов работу продолжаю)
Аватара пользователя
pavel123
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

Спасибо, жду с нетерпением :)) :))
Аватара пользователя
bagira
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Чт фев 07, 2008 23:00:46
Откуда: Penza

Сообщение bagira »

Здравствуйте! Столкнулся с несколькими проблемами - самому не разобраться. Пишу:
Ddrd = &B11100011'Входы/выходы
Portd = &B00011100'Подтяжка резисторами
Rigel Alias = Portd.5
Rigel = &H01
После этого система ругается ЕРОР № 31,35,105,124
Вроде всё в соответствии с хелпом но чегото делаю нетак.
И существует ли вообще в языке нечто похожее на БИТ-процессор, чтобы можно было с отдельными ПИНами работать не заморачиваясь "считка+маска=запись", или в языке это не реализовано (может глюк какой?). Версия языка 1.11.9.0.
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

А можно более распространенный фрагмент кода со всеми объявлениями и алиасами?

На битовом уровне работать - я так понял, нужны регистры пинов? Считывается pinx.y, запись portx.y, вроде так. Только направление работы ввод-вывод указать нужно.
Ответить

Вернуться в «AVR»