Обсуждаем контроллеры компании Atmel.
Ответить

Ср июн 18, 2008 09:51:29

Добрый день или вечер!
Решил попробовать BASCOM AVR, столкнуля с одной проблемой.
при чтении датчика температуры ds18b20 при указанном параметре
$crystal = 4000000
прчитанные 9-ть байт не соответствут реальным, каждый байт больше в два раза, а при параметре $crystal = 1000000 или $crystal = 2000000 или $crystal = 3000000 все нормально.
Хотя команда
Reg_no(1) = 1wsearchfirst()
работает нормально при любых параметрах $crystal.
Испльзую BASCOM v1.11.9.0
Вопрос: ктонибудь сталкивался с такой проблемой если да, как с этим бороться?
Всем спасибо.

Ср июл 09, 2008 19:34:18

А какой МК?

Пт июл 11, 2008 11:44:45

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


МК разные
Atmega8,16,8515 At90S8515, 2313.
с параметром
$crystal = 3686400 еще все работает, а вот
с $crystal = 4000000 уже проблемы.

Ср июл 16, 2008 11:04:30

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

Ср июл 16, 2008 11:47:27

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

А сама частота работы МК выставляется фьюзами.

Ср июл 16, 2008 14:27:48

Фьюзы и стоят на 1 МГц. Если несоответствие фьюзов и $crystal, тогда не опознается термометр DS18B20.
Причем, если поставить и там и там 4МГц погрешность меняется.
Программатор ChipBoom.

Ср июл 16, 2008 16:56:01

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

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

Может, это, схему (как оно сейчас подключено) в студию (и код в приложении)?
И тогда кто-нибудь прокоментирует...

Ср июл 16, 2008 17:52:02

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

В тексте программы Waitms 1800 дает задержку около 900 мс (считал по показаниям таймера)
Вложения
radiokot.txt
(904 байт) Скачиваний: 874

Чт июл 17, 2008 08:07:15

А зачем Waitms 1800? Время преобразования DS18b20 - 750ms. делал на них градусники и на 2313 и на 8 меге все работает.

Чт июл 17, 2008 15:58:33

Всем спасибо, это у меня был глюк, все работает.

Ср июл 23, 2008 00:51:27

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

Ср июл 23, 2008 13:39:24

Даеш продолжение!!!

Ср июл 23, 2008 17:39:53

Или у меня мания величия, или я действительно неплохо делаю обучалку :)
А подробнее никто ничо не скажет? Если есть какие-то ошибки/опечатки, говорите тут, в аське или на мыло.

Пн июл 28, 2008 14:06:46

Спасибо, замечательная обучалка. :))
Тыркался, как слепой котенок в этот BASCOM AVR. :))
Многое стало понятным. :idea:
Жду продолжения.
Еще раз спасибо.

Вт июл 29, 2008 08:24:07

ХОРОШО!!!
А ссылку то хоть можно выложить на форуме Васика?
А то жутко страшно насчёт рельсы :cry:

Вт июл 29, 2008 13:20:57

А почему то дальше 10-й страницы не открывается :(

Вт июл 29, 2008 16:54:24

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

После 10 ничо не откроется, потому что еще не сделано) точнее 11 статью уже перевел про I2С, делаю 12 и т.д., но пока еще не выложил. Ввиду важности статей и хороших отзывов работу продолжаю)

Вт июл 29, 2008 17:10:56

Спасибо, жду с нетерпением :)) :))

Вт сен 09, 2008 20:43:51

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

Ср сен 10, 2008 22:16:40

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

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