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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

edm2007 писал(а):Для начала, канал АЦП0 (PORTA.0) настроен на выход:

Код: Выделить всё

Ddra = &B11110111 

Это случайно, в ранних версиях было правильно. :)
Переделал, показания не изменились. Меняются, если только в Протеусе в свойствах источника питания убрать галочку с пункта "Источник тока".
Цапу крутить надо!!! Ку или не ку?
Реклама
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

edm2007 писал(а):Это случайно, в ранних версиях было правильно.


Ну правильно, ага. Это чтоб я не расслаблялся, да? А я искал кто садит вход... :( Да и хрен с ней, с этой галочкой, если делитель пополам (в примере ниже, 0 - 10 В), то он и должен делить пополам. Проценты пока не ковырял...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Ну, делал я так! Только лажа получалась. Сдается мне, это как раз из-за единички в DDRA на PORTA.0.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Погодите, из-за какой единички? В конфигурации порта ?!!! :shock: Да разумеется, если туда 1 записать то пин порта будет настроен на ВЫХОД. А так как на выходе будет изначально 0 то я не думаю что надо объяснять что будет если на ВЫХОД МК подать +. Это Вы шутите так? :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Кстати, смотрите, у Вас в расчете повторяется одно и то же для расчета напряжения и процентов:

Код: Выделить всё

P = Result * 500 <<<<<<<<<<<<
P = P / 1024      <<<<<<<<<<<<
P = P * 100
P = P / 750
'----------
Result = Result * 500   <<<<<<<<<<<<                                     
Result = Result / 1024  <<<<<<<<<<<<
Result = Result * 2


Может тогда так?:

Код: Выделить всё

Result = Result * 500    ' расчет напряжения с учетом делителя
Result = Result / 1024
Result = Result * 2
'----------
P = Result * 100 ' расчет процентов
P = P / 750
'----------
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Да какие уж тут шутки. :( Замучился я с этим проектом. :( Ну сейчас, вроде все заработало и проценты тоже. Дело было в том, что подсчет напряжения изменял переменную Result, а она в свою очередь использовалась для подсчета процентов уже в измененном виде. Вот поэтому лажа и получалась. Проблема решилась введением еще одной переменно типа Long.
Цапу крутить надо!!! Ку или не ку?
Реклама
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Ну вот, пока писал ответ, вы уже все за меня написали... Вот всегда так... :oops:
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

edm2007 писал(а):Проблема решилась введением еще одной переменно типа Long.


Простите, а зачем? Там все и так выходит замечательно, без дополнительных переменных. Там вполне удобный расчет, кстати. В процентах можно легко под любой предел подогнать изменением одной цифры. Это Вы здорово придумали. Надо под автомобильный аккумулятор сделать.

Или что-то не так?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Да нет, все так! Это я сначала сделал с дополнительной переменной, а потом как у вас. Пришли к общему знаменателю, только разными путями.
А с автомобильным аккумулятором у меня уже был опыт, только не совсем удачный (отчасти).
Тот же контроллер тини26, тот же индикатор на 4 разряда, только мерять он должен был зарядный ток. Эту свою фигню я встроил в авто-зарядное "Кедр-10". Короче получилась херня, ток показывает неправильно и индикация мерцает сильно. Переделывать времени не было. Теперь просто перешью контроллер и будет показывать % заряда. Так даже удобнее. :)
Только у меня там индикатор с ОК. Придется код немного исправить...
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

А, ну все замечательно тогда. :) Я там правда в своем примере вывод PORTA.6 входом сделал. Как-то внимание не обратил что у Вас он еще дергает зарядку. :) Ну да у Вас свой исходник, так что не запутаетесь. :) А так вроде все... Одно непонятным осталось, почему Dim Chislo(8) As Integer. Word уж тогда. :))
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Да и еще: ОГРОМНОЕ СПАСИБО!за помощь. Теперь, думаю, с динамической индикацией справлюсь. Ну так как? Возметесь за статью?
P.S.: Про Word и Integer. Размер кода от изменения не страдает, так что похрен... :)) 8)
Последний раз редактировалось Igor_67 Вс апр 17, 2011 19:01:06, всего редактировалось 1 раз.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):Только у меня там индикатор с ОК. Придется код немного исправить...


Ну да это ерунда, цифры подправить да в индикации Reset/Set поменять.

Пожалуйста. Самому интересно было. :) Тиньки26 нет в наличии. Вы же будете паять так почему бы не написать статью. :)

P.S.: Про Word и Integer. Размер кода от изменения не страдает, так что похрен...


Да это понятно. Просто интересно. :))
Последний раз редактировалось edm2007 Вс апр 17, 2011 19:06:33, всего редактировалось 1 раз.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

edm2007 писал(а):
edm2007 писал(а):Только у меня там индикатор с ОК. Придется код немного исправить...


Ну да это ерунда, цифры подправить да в индикации Reset/Set поменять.

Пожалуйста. Самому интересно было. :) Тиньки26 нет в наличии. Вы же будете паять так почему бы не написать статью. :)

О'кей! Обещаю подумать над этим вопросом! :) :beer:
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Вобщем, вот просто как вариант с обычной индикацией (еще убрал второй 0 при процентах менее 10, в принципе не так и нужно, просто от нечего делать). :) Разумеется, это только протеус, надо и стабилитрон на вход АЦП поставить для защиты и резисторы на сегменты... Да и транзисторы на разряды я бы тоже вкорячил...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tanx
Родился
Сообщения: 5
Зарегистрирован: Вт апр 19, 2011 13:39:18

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

Сообщение tanx »

ПОМОГИТЕ СОВЕТОМ!!!
Есть програмка для GPS навигатора с использованием индикатора Сименс - но изначально программа была написана под графический дисплей-128х64. Програмку переписал под Сименс(все работает тип топ) но хотел еще добавить кусочек програмки для контроля напяжения батареи. Написал, добавил и при компиляции выдает ошибку №221. как исправить не совсем понимаю (в Баскоме я пока не силен). Спасибо заранее за ответ.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Я же говорю, проект прикрепляйте. Или Вы чего, думаете что Вам по номеру ошибки все объяснят? :))
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Во-первых, мне не совсем понятно зачем Вы закрыли измерение в замкнутый цикл. Программа же там будет крутиться бесконечно. А главное, вызова подпрограммы (Call Battery) я не увидел.

P.S. А ругается Bascom на библиотеки и файлы. В проекте их нет просто. Ошибки 221 у меня нет.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

edm2007 писал(а):Ошибки 221 у меня нет.
Если верить справке, то эта ошибка расшифровывается как "Backward jump out of range".
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Ага, я тоже сразу глянул... Ну у меня пока ругается на Library file not found, и File not found. Просто в проекте их нет... Там исходник большой, на 3000 строк. Плюс куча подключаемого хлама. Не углублялся, просто АЦП посмотрел.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tanx
Родился
Сообщения: 5
Зарегистрирован: Вт апр 19, 2011 13:39:18

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

Сообщение tanx »

На счет ошибки 221 совершенно верно подметили. На счет "всякого хлама" не согласен(без него никак). А библиотека LCD-S65-L2F50.LBX позаимствована и все компилируется без проблем. Кстати в железе все работает без проблем, и програмирование микроконтролера проходит на ура.
занято только где-то 84 процента. И вот решил добавить измерение напряжения аккумулятора от мобилки-думал просто, ага да не тут то было. Выкидывает ошыбку 221 и хоть ты тресни.
пробовал разные варианты:
например-------------------------------------
Dim W1 As Word , Voltage As Single
Dim Sw As String * 1
Const V_ref = 3.2
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
'----------
Do
Gosub Get_var
Gosub Check_sw
Gosub Show_temp
Wait 1
Loop
'----------
Get_var:
W1 = Getadc(0)
Voltage = W1 * V_ref
Voltage = Voltage / 1024
'Return
'----------
Check_sw:
Select Case W1
Case 100 To 200 : Lcdat 160 , 1 , "II " , Red , Yellow
Case 200 To 300 : Lcdat 160 , 1 , "III " , Red , Yellow
Case 300 To 400 : Lcdat 160 , 1 , "IIII " , Red , Yellow
Case 400 To 500 : Lcdat 160 , 1 , "IIIII " , Red , Yellow
Case 500 To 600 : Lcdat 160 , 1 , "IIIIII " , Red , Yellow
Case 600 To 700 : Lcdat 160 , 1 , "IIIIIII " , Red , Yellow
Case 700 To 800 : Lcdat 160 , 1 , "IIIIIIII " , Red , Yellow
Case 800 To 900 : Lcdat 160 , 1 , "IIIIIIIII " , Red , Yellow
Case 900 To 1000 : Lcdat 160 , 1 , "IIIIIIIIII " , Red , Yellow

Case Else : Sw = "-"
End Select
'Return
'----------
Show_temp:
'Cls
Lcdat 100 , 1 , "VAR1= " ; W1 , Red , Yellow
Lcdat 120 , 1 , "VOLT= " ; Voltage , Red , Yellow
Lcdat 130 , 1 , "Switch NO. " ; Sw , Red , Yellow

End Sub

интерестно но отдельно одним файлом все работает
проверял в протеусе.
а когда вставляю в свой проект получается ошибка 221
как это оформить? куда вставить? не получается
НАСТАВТЕ НА ПУТЬ ИСТИННЫЙ
Ответить

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