BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
Пробовал другую библиотеку подключать, для вертикальной ориентации дисплея, шрифт серавно также обрезанный, значит сам файл шрифта кривой 
- Реклама
Re: BASCOM AVR в вопросах и ответах
Сейчас на работе целыми днями - некогда. В выходные посмотрю, если время позволит.myx писал(а): В теории понял, а вот как на практике написать не знаю. Ради добавления возможности регулировать температуру с десятыми долями не хочется бэйсик изучать. Может накидаете кусок программы с изменениями?
Цапу крутить надо!!! Ку или не ку?
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Можно еще дурацкий вопрос? Вот использую в проекте баском микросхему памяти 24lc64. А как во время работы в протеусе посмотреть как меняется её содержимое?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
На самом деле все просто: как обычно загружаем в МК файл .OBJ, запускаем пошаговую отладку, а затем в меню "Отладка" выбираем в самом низу "I2C Memory Internal Memory".

P.S. Если быть внимательным, то можно заметить что так же в списке присутствуют датчики DS18XXX, содержимое которых можно так же посмотреть. То бишь, что в проекте используется, то и можно подробно разглядеть. Что при отладке очень удобно. Вообще меню "Отладка" хранит массу сокровищ. Тут можно и содержимое регистров посмотреть, и EEPROM самого МК, да что там, можно даже исходный код на АСМе посмотреть. Так что стоит уделить немного времени, Proteus - это совсем не игрушка.
P.S. Если быть внимательным, то можно заметить что так же в списке присутствуют датчики DS18XXX, содержимое которых можно так же посмотреть. То бишь, что в проекте используется, то и можно подробно разглядеть. Что при отладке очень удобно. Вообще меню "Отладка" хранит массу сокровищ. Тут можно и содержимое регистров посмотреть, и EEPROM самого МК, да что там, можно даже исходный код на АСМе посмотреть. Так что стоит уделить немного времени, Proteus - это совсем не игрушка.
- Вложения
-
- leo_memory.gif
- (85.91 КБ) 1262 скачивания
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Спасибо!!!
Сегодня после работы по эксперементирую. Пока так и не понял как в меню изменять константы. Меню сделал а толку то... Снова буду биться с баскомом 
- Реклама
-
ВасилийВикторович
- Открыл глаза
- Сообщения: 71
- Зарегистрирован: Чт мар 18, 2010 23:31:57
- Откуда: Домодедово
Re: BASCOM AVR в вопросах и ответах
Внимание! Вопрос знатокам! Почему при нажатии кнопки на пульте, toggle выполняется два раза? Пробовал после toggle relay ставить wait, но один хрен хоть минуту задержку делай, все равно еще раз после задержки срабатывает.
Причем делал тоже самое на 90s2313 и проблем небыло. Заметил вот что: если постараться на пульте жать кнопку очень коротко(что редко но случается) то все ок. Выходит что такой своеобразный "дребезг" получается. Вот если бы это был не пульт rc5 а простая кнопка подключенная к мк напрямую, я б дописал GIFR = 64 как здесь: А так уже не знаю что и делать, голова кипит уже.
Код: Выделить всё
$regfile = "attiny13.dat"
$crystal = 9600000
$lib "mcsbyte.lbx"
Dim Address As Byte
Dim Command As Byte
Config Portb.4 = Output
Relay Alias Portb.4
Config Rc5 = Pinb.0
Enable Interrupts
Do
Getrc5(address , Command)
Command = Command And &B01111111
If Command = 12 Then
Toggle Relay
End If
Loop
End Код: Выделить всё
Button:
Toggle Relay
Waitms 100
Gifr = 64
Return
End- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
Надо не после toggle relay, а перед:ВасилийВикторович писал(а):Пробовал после toggle relay ставить wait, но один хрен хоть минуту задержку делай, все равно еще раз после задержки срабатывает.
Код: Выделить всё
If Command = 12 Then
Waitms 200
Toggle Relay
End IfТого, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
-
ВасилийВикторович
- Открыл глаза
- Сообщения: 71
- Зарегистрирован: Чт мар 18, 2010 23:31:57
- Откуда: Домодедово
Re: BASCOM AVR в вопросах и ответах
Так тоже пробовал, опрашивается rc5, затем задержка, и один хрен два раза toggle.max50 писал(а):ВасилийВикторович писал(а):Надо не после toggle relay, а перед:Код: Выделить всё
If Command = 12 Then Waitms 200 Toggle Relay End If
А вот за такую подсказку :
Код: Выделить всё
Config Rc5 = Pinb.3 , Wait = 200 ' *Wait - подбирать по стабильному срабатываниюХотя странно что в 2313 работает нормально.
-
ВасилийВикторович
- Открыл глаза
- Сообщения: 71
- Зарегистрирован: Чт мар 18, 2010 23:31:57
- Откуда: Домодедово
Re: BASCOM AVR в вопросах и ответах
Оказалось все намного проще, код работает как надо! Проблема в конструкции, реле у меня управляется не
только с пульта, но еще и кнопкой. Как оказалось подтяжки 10кОм маловато, наводки от реле вызывали срабатывание еще и по кнопке.
только с пульта, но еще и кнопкой. Как оказалось подтяжки 10кОм маловато, наводки от реле вызывали срабатывание еще и по кнопке.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Мда... Думаю лучше все константы для меню хранить во внешней памяти. И оттуда их менять. Не получается у меня в меню менять константы, в протеусе начинаются глюки и ошибка вылетает... 
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Естественно. Еще можно написать программу для компьютера, подключить к нему устройство, и пусть компьютер "константы" изменяет. Он жеж больше, он жеж умнее. А еще лучше бабушку на пенсии нанять. Пускай за определенную плату время по будильнику отмеряет и кнопки нажимает. Электроники минимум, и человек при деле.осторожно! леоныч!!! писал(а):Думаю лучше все константы для меню хранить во внешней памяти. И оттуда их менять.
Я понять не могу, в чем проблема-то? Что именно у Вас не получается? Вы вот когда говорите:
так уточняйте, какие глюки, какая ошибка, и при каком исходнике. И главное, что же Вы хотели получить. Чем подробнее и грамотнее будет вопрос, тем быстрее и точнее будет ответ.осторожно! леоныч!!! писал(а):в протеусе начинаются глюки и ошибка вылетает...
P.S. И еще, называйте вещи своими именами. Константа - с латинского буквально "постоянный, неизменяющийся". Число Пи, количество секунд в минуте, скорость света - все это константы. Их нельзя изменить. То же что Вы хотите поменять называется переменной. Тут все ясно и из названия.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Зря на меня сердитесь. Назвал не правильно, не спорю. Мне нужно изменять значение задержки waitms. А внешняя память нужна, не надо бабушек, тут и дедушек хватает, внешняя память в основном для сохранения значений регистра, причем эти значения еще и нумероваться будут. И записей не менее 100 будет. А поскольку есть внешняя память то почему бы в ней не держать значения? У неё и ресурс гораздо больше чем у памяти контроллера.
Есть значение "W" Его надо запоминать по нажатию кнопки, менять его задержку на переключение.
Я писал, наверняка не правильно (скорее всего 100%) Waitms = C ( С это то что нужно изменять в меню. Изначально условие что к примеру "С" = 50.
Ругаться и злится все умею, даже я, но я только учусь.
Есть значение "W" Его надо запоминать по нажатию кнопки, менять его задержку на переключение.
Я писал, наверняка не правильно (скорее всего 100%) Waitms = C ( С это то что нужно изменять в меню. Изначально условие что к примеру "С" = 50.
Ругаться и злится все умею, даже я, но я только учусь.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Вот заняться мне нечем.осторожно! леоныч!!! писал(а):Зря на меня сердитесь.
Проблема какая-то надуманная, а Вы ее решаете которую неделю... Кто мешает сделать так:
Код: Выделить всё
Dim Temp as Word ' переменная, определяющая величину задержки (0 - 65535)
................
Waitms Temp
Код: Выделить всё
Dim Count as Word, Temp as Word
..................
Any_delay:
For Count = 1 To Temp
Waitus 1
Next
Return
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Ну вот... Видимо теории мало у меня. Хотя если честно нормальной книжки нету у меня. Поглащаю информацию отовсюду. Но такого варианта не видел. Еще раз спасибо. Буду пробовать! А бабушки и дедушки тут не причем
Им лучше телевизор дома смотреть 
- htscooter
- Вымогатель припоя
- Сообщения: 566
- Зарегистрирован: Вт ноя 18, 2008 20:33:17
- Откуда: г.Луганск
Re: BASCOM AVR в вопросах и ответах
Уважаемые коты, подскажите, в чем может быть дело. Кусок кода, а именно
вываливает ошибку в строчке Razryad(i) = Razryad_, пишет "Source variable does not match the target variable", несмотря на то, что все переменные одинаковые, и обозначены вначале кода, а именно
Что за беда?
----
В причине не разобрался, но вылечилось добавлением в конце строчки апострофа для комментария
Код: Выделить всё
For I = 1 To 4
Cyfra_ = Cyfra(i)
Razryad_ = Cyfra_ * 8 'выбираем строку в таблице данных
Razryad_ = Segment + Razryad_ 'выбираем столбец в таблице данных
Razryad_ = Lookup(razryad_ , Cifri) 'забираем данные
If Common_cathode = 1 Then Razryad_ = Not Razryad_ 'инвертируем в случае общего катода
Razryad(i) = Razryad_
Next I
Код: Выделить всё
Dim Razryad_ As Byte
Dim Razryad(4) As Byte
Dim Cyfra(4) As Byte 'хранение минут и секунд по разрядам (cyfra(1) - самый старший разряд, cyfra(4) - самый младший)
Dim Cyfra_ As Byte
Dim Segment As Byte
Dim I As Byte
----
В причине не разобрался, но вылечилось добавлением в конце строчки апострофа для комментария
Хорошо и надежно работающая система безусловно красива
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
А какая версия компилятора?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Никогда не используйте символ "_" в таком виде, не создавайте себе проблемы на ровном месте. Дело в том что этот служебный символ воспринимается компилятором как символ переноса строки. Например, последняя команда трактуется как:htscooter писал(а):Что за беда?
Код: Выделить всё
Razryad(i) = Razryad Next I
Код: Выделить всё
Dim A As Byte , B As Byte , C As Byte , D As Byte , _
E As Byte , F As Byte , G As Byte , H As Byte
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- htscooter
- Вымогатель припоя
- Сообщения: 566
- Зарегистрирован: Вт ноя 18, 2008 20:33:17
- Откуда: г.Луганск
Re: BASCOM AVR в вопросах и ответах
Буду знать, спасибо!
Хорошо и надежно работающая система безусловно красива
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Что то у меня не выходит получить информацию у вменяемом виде с датчика - tmp006. Локальную температуру получил, а температуру объекта не получается. Беспорядочно меняется значение от 100 до 200. Может у кого то уже есть опыт работы с таким датчиком? Ну и собственно кусок кода, тот который с расчетом этой температуры?
Код: Выделить всё
Tmp006:
I2cstart
I2cwbyte Tmp006w
I2cwbyte B1
I2cstart
I2cwbyte Tmp006r
I2crbyte Hightemp , Ack
I2crbyte Lowtemp , Nack
I2cstop
Temp = Makeint(hightemp , Lowtemp )
Return- svic
- Друг Кота
- Сообщения: 5837
- Зарегистрирован: Ср ноя 17, 2010 23:10:55
- Откуда: Ижевск LO66NU
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Доброго времени суток всем пушистым! Прошу совета по небольшому вопросу - будет-ли мега8 физически отлавливать уровень на PD2 (рыба прилагается в архиве). Почему-то никак не получается сконфигурировать означенную ногу, как PIND....
В начале жизнь мучает вопросами, в конце - ответами...


