BASCOM AVR в вопросах и ответах
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Так и надо приводить код, вызывающий ошибки. А то пишите одно, а компилируете другое. Уберите строку $lib "mcsbyte.lbx".
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Так и надо приводить код, вызывающий ошибки. А то пишите одно, а компилируете другое. Уберите строку $lib "mcsbyte.lbx".
Спасибо!!! Все откомпилилось!
Re: BASCOM AVR в вопросах и ответах
А вот в протеусе не работает ...
(
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Работает, я проверял. На AVCC не забыли питание подать?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Работает, я проверял. На AVCC не забыли питание подать?
НЕ забыл! висит питание ....
- Вложения
-
- 1.JPG
- (194.9 КБ) 567 скачиваний
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
У меня все работает. Только добавил
чтобы до двух знаков после запятой обрезать. И один канал АЦП вывел для наглядности.

Код: Выделить всё
Config Single = Scientific , Digits = 2 чтобы до двух знаков после запятой обрезать. И один канал АЦП вывел для наглядности.
- Вложения
-
- ADC_tomas111.PNG
- (19.08 КБ) 1721 скачивание
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
А у меня снова ошибка!! Что за фигня ....
И почему показания такие огромные !? Вроде как должно быть до 80 !?
И почему показания такие огромные !? Вроде как должно быть до 80 !?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Это непосредственное значение АЦП. Оно от 0 до 1023.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Я про верхние показания ... они то и вроде ограничивают диапазон. От 0 до 80
Суть в том что у тебя работает а у меня нет. Хотя я уверен что протеусы у нас по схемам одинаковые ...
Где искать касяк !?
P.S. Мне вообще нужно вывести 4 показания по разным углам экрана... Но я и с одним разобраться не могу ....
Суть в том что у тебя работает а у меня нет. Хотя я уверен что протеусы у нас по схемам одинаковые ...
Где искать касяк !?
P.S. Мне вообще нужно вывести 4 показания по разным углам экрана... Но я и с одним разобраться не могу ....
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
tomas111 писал(а):И почему показания такие огромные !?
tomas111 писал(а):Я про верхние показания ... они то и вроде ограничивают диапазон. От 0 до 80
Послушайте, а 15,72 в каком именно месте больше? Это во-первых. А во-вторых, в коде ограничивается Channel_1 до 80, в то время как выводится Chvar_1. Так что ни о каком ограничении речь не идет, смотрите внимательнее в код.
Свой проект отправлю, но у меня Proteus 7.7.
upd: Отправил.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Получил! Спасибо!
Почти то что нужно!
А подскажи как сделать 4 канала но счет для них один !? Что бы задействовать ADC 0 по ADC 4 и вывод на экране был 0,00 по 8,00 !?
Почти то что нужно!
А подскажи как сделать 4 канала но счет для них один !? Что бы задействовать ADC 0 по ADC 4 и вывод на экране был 0,00 по 8,00 !?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Отправил в личку.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Отправил в личку.
Спасибо! очень хорошо получилось!
-
freeman401
- Родился
- Сообщения: 5
- Зарегистрирован: Вт июл 31, 2012 13:48:19
Re: BASCOM AVR в вопросах и ответах
Помогите пожалуйста с прошивкой 
Кое-как освоил bascom за полдня
Нужно было написать прошивку для шим контроллера на ATtiny13 для реализации плавной накачки в QCW DRSSTC.
Суть такова: подаем сигнал с внешнего запускающего источника на вход МК, он выдает сигнал запуска генерации для драйвера DRSSTC, затем, через 10мс начинает рост заполнения ШИМ на выходе, чтобы на выходе усилителя класса D начала расти пила. значение шим растет заданное переменным резистором время до заданного переменным резистором предела. как только заполнение дойдет до предела, начинается спад, происходящий в процентном отношении ко времен нарастания, которое тоже выставляется резистором. после окончания пилы пропадает сигнал запуска генерации.
итого: имеем 3 задействованных АЦП, 1 ШИМ, 1 простой вход, 1 простой выход.
вот код:
Вся проблема в том, что на сроках:
и
проверка синтаксиса выдает ошибку "3 parameters expected"
у меня уже нет идей...
С бейсиком раньше дело имел, но не очень хорошо его помню
Кое-как освоил 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 в вопросах и ответах
tomas111 писал(а):проверка синтаксиса выдает ошибку "3 parameters expected"
Все правильно.
Васик позволяет делать одно арифметическое действие в строке, то есть нужно завести промежуточные переменные, и их помощью произвести расчеты. Примерно так:
Код: Выделить всё
F_1= =a / 32
F_2= =F_1/ N
F_3= =b / 1024
F =F_2 *F_3F_1, F_2, F_3 - нужно объявить в начале программы. Тип выбрать в зависимости от результата.
С R нужно проделать тоже самое.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
-
freeman401
- Родился
- Сообщения: 5
- Зарегистрирован: Вт июл 31, 2012 13:48:19
Re: BASCOM AVR в вопросах и ответах
Надеюсь, после ведения этих переменных код влезет в 1Кб ;D
Последний раз редактировалось freeman401 Пн мар 11, 2013 13:33:24, всего редактировалось 2 раза.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
freeman401 писал(а):адеюсь, после ведения этих переменных код влезет в 1Кб![]()
Надежда умирает последней.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
-
freeman401
- Родился
- Сообщения: 5
- Зарегистрирован: Вт июл 31, 2012 13:48:19
Re: BASCOM AVR в вопросах и ответах
Все теперь правильно, но пишет, что "Out of SRAM space"
не влезло, значит
не влезло, значит
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Пробуйте на Си. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
freeman401
- Родился
- Сообщения: 5
- Зарегистрирован: Вт июл 31, 2012 13:48:19
Re: BASCOM AVR в вопросах и ответах
лучше я контроллер возьму тини85, он мне даже дешевле выходит, а памяти в 8 раз больше