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

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

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

Сообщение edm2007 »

Так и надо приводить код, вызывающий ошибки. А то пишите одно, а компилируете другое. Уберите строку $lib "mcsbyte.lbx".
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

edm2007 писал(а):Так и надо приводить код, вызывающий ошибки. А то пишите одно, а компилируете другое. Уберите строку $lib "mcsbyte.lbx".


Спасибо!!! Все откомпилилось! :)) Пошел дальше учить бейсик :))
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

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

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

Сообщение edm2007 »

Работает, я проверял. На AVCC не забыли питание подать?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

edm2007 писал(а):Работает, я проверял. На AVCC не забыли питание подать?

НЕ забыл! висит питание ....
Вложения
1.JPG
(194.9 КБ) 567 скачиваний
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

У меня все работает. Только добавил

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

Config Single = Scientific , Digits = 2 


чтобы до двух знаков после запятой обрезать. И один канал АЦП вывел для наглядности.

Изображение
Вложения
ADC_tomas111.PNG
(19.08 КБ) 1721 скачивание
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

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

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

Сообщение edm2007 »

Это непосредственное значение АЦП. Оно от 0 до 1023.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

Я про верхние показания ... они то и вроде ограничивают диапазон. От 0 до 80
Суть в том что у тебя работает а у меня нет. Хотя я уверен что протеусы у нас по схемам одинаковые ...
Где искать касяк !?
P.S. Мне вообще нужно вывести 4 показания по разным углам экрана... Но я и с одним разобраться не могу ....
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

tomas111 писал(а):И почему показания такие огромные !?

tomas111 писал(а):Я про верхние показания ... они то и вроде ограничивают диапазон. От 0 до 80


Послушайте, а 15,72 в каком именно месте больше? Это во-первых. А во-вторых, в коде ограничивается Channel_1 до 80, в то время как выводится Chvar_1. Так что ни о каком ограничении речь не идет, смотрите внимательнее в код.

Свой проект отправлю, но у меня Proteus 7.7.
upd: Отправил.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

Получил! Спасибо!
Почти то что нужно! :))
А подскажи как сделать 4 канала но счет для них один !? Что бы задействовать ADC 0 по ADC 4 и вывод на экране был 0,00 по 8,00 !?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Отправил в личку.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

edm2007 писал(а):Отправил в личку.

Спасибо! очень хорошо получилось! :)) Есть над чем задуматься :))
freeman401
Родился
Сообщения: 5
Зарегистрирован: Вт июл 31, 2012 13:48:19

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

Сообщение freeman401 »

Помогите пожалуйста с прошивкой ;)
Кое-как освоил bascom за полдня
Нужно было написать прошивку для шим контроллера на ATtiny13 для реализации плавной накачки в QCW DRSSTC.
Суть такова: подаем сигнал с внешнего запускающего источника на вход МК, он выдает сигнал запуска генерации для драйвера DRSSTC, затем, через 10мс начинает рост заполнения ШИМ на выходе, чтобы на выходе усилителя класса D начала расти пила. значение шим растет заданное переменным резистором время до заданного переменным резистором предела. как только заполнение дойдет до предела, начинается спад, происходящий в процентном отношении ко времен нарастания, которое тоже выставляется резистором. после окончания пилы пропадает сигнал запуска генерации.
итого: имеем 3 задействованных АЦП, 1 ШИМ, 1 простой вход, 1 простой выход.

вот код:

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

$regfile = "attiny13.dat"
$crystal = 12000000
Config Adc = Single , Prescaler = Auto , Reference = Internal       ' задаем параметры ацп
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 1        ' задаем параметры ШИМ'а
Config Portb.0 = Output                                                ' задаем конфигурацию портов
Config Portb.1 = Output
Config Portb.2 = Input
Dim F As Integer ' задаем переменные
Dim R As Integer
Dim I As Integer
Dim V As Integer
Dim N As Integer
Dim A As Integer
Dim B As Integer
Dim C As Integer
N = 256 / 1000
A = getadc(2)
B = getadc(3)
C = getadc(0)
I = Portb.2                                                 ' эта переменная - сигнал с запускающего входа
F =((a / 32) / N) *(b / 1024)                               ' задаем паузу между повышениями значения ШИМ на 1, заздаем нарастание пилы
' ((getadc(2) / 32) численно равно времени накачки
' ((getadc(2) / 32) / 0.256) - это получаем время паузы (мкс) между повышением значения ШИМ на 1, опираясь на разрядность ШИМ'а
' ШИМ у нас 8 битный, значит возможно 256 значений, время перехода межу значениями (мкс) бует равно: время(мс)/256*1000 или время(мс)*0.256
' поскольку у пилы должен быть еще и регулируемый спад, введем переменный резистор, висящий на третьем канале АЦП
' он отвечает за процентную долю нарастающей части пилы во всей длине пилы
R =((a / 32) / N) -((a / 32) / N) *(b / 1024)' задаем паузу между уменьшениями значения ШИМ на 1, создаем спад пилы
' для получения времени паузы (мкс) между понижением значения ШИМ на 1 вычтем из общего времени паузы для пилы врея паузы для фронта филы
V =(c / 4) - 2 ' переменным резистором устанавливаем максимальное выходное напряжение бака.
' т.к. АЦП 10-разрядный и имеет 1024 значения, а ШИМ 8 разрядный (для достижения нужно частоты) и имеет 256 значений, делим значение с АЦП на 4
' отнимаем 2 для безпасности ;)
Start Adc

Do

Pwm0a = 25                                                  'задали начальные 30 вольт на выходе усилителя класса D

Ask_inter:                                                  ' опрос ножки запускающего входа
If I = 1 Then                                               ' если сигнал есть, выдаем сигнал на старт генерации
Set Portb.1 = 1
Waitms 10                                                   ' ждем начала генерации
Goto Ramp_fr
Else
Pwm0a = 25                                                  ' если сигнала нет, то для профилактики сиавим 30 вольт yf выходt и снова оправшивает ножку внешнего прерывателя
Goto Ask_inter

Ramp_fr:                                                    ' начинаем рост пилы
If Pwm0a < V Then                                           ' если значегние ШИМ меньше установленного предела, увеличиваем на 1 и жждем заданное время
Incr Pwm0a
Waitus F
Goto Ramp_fr                                                ' если значение ШИМ достигло установленного предела, начинаем спад пилы
Elseif Pwm0a = V Then
Goto Ramp_re
End If

Ramp_re:                                                    ' спад пилы
If Pwm0a > 25 Then
Decr Pwm0a
Waitus R
Goto Ramp_re                                                ' если значение ШИМ больше, чем 25, то уменьшаем на 1, ждепм установленное время и повторяем операцию
Elseif Pwm0a = 25 Then
Waitms 2                                                    ' немного ждем для того, чтобы все успокоилось
Set Portb.1 = 0                                             ' после окончания спада пилы вылючаем генерацию
Waitms 2                                                    ' немного ждем для того, чтобы все успокоилось
Goto Ask_inter                                              ' идем опрашивать запускающий вход
End If

Loop                                                        ' зацикливаем все

End


Вся проблема в том, что на сроках:

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

F =((a / 32) / N) *(b / 1024) 

и

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

R =((a / 32) / N) -((a / 32) / N) *(b / 1024)

проверка синтаксиса выдает ошибку "3 parameters expected"
у меня уже нет идей...

С бейсиком раньше дело имел, но не очень хорошо его помню
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

tomas111 писал(а):проверка синтаксиса выдает ошибку "3 parameters expected"

Все правильно. :)
Васик позволяет делать одно арифметическое действие в строке, то есть нужно завести промежуточные переменные, и их помощью произвести расчеты. Примерно так:

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

F_1= =a / 32
F_2= =F_1/ N
F_3= =b / 1024
F =F_2 *F_3

F_1, F_2, F_3 - нужно объявить в начале программы. Тип выбрать в зависимости от результата.
С R нужно проделать тоже самое.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
freeman401
Родился
Сообщения: 5
Зарегистрирован: Вт июл 31, 2012 13:48:19

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

Сообщение freeman401 »

Надеюсь, после ведения этих переменных код влезет в 1Кб ;D
Последний раз редактировалось freeman401 Пн мар 11, 2013 13:33:24, всего редактировалось 2 раза.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

freeman401 писал(а):адеюсь, после ведения этих переменных код влезет в 1Кб :))

Надежда умирает последней. :))
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
freeman401
Родился
Сообщения: 5
Зарегистрирован: Вт июл 31, 2012 13:48:19

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

Сообщение freeman401 »

Все теперь правильно, но пишет, что "Out of SRAM space"
не влезло, значит
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Пробуйте на Си. :wink:
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
freeman401
Родился
Сообщения: 5
Зарегистрирован: Вт июл 31, 2012 13:48:19

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

Сообщение freeman401 »

лучше я контроллер возьму тини85, он мне даже дешевле выходит, а памяти в 8 раз больше
Ответить

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