Например TDA7294

Форум РадиоКот • Просмотр темы - BASCOM AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 14:31:48

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6019 ]     ... , , , 274, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 17, 2017 15:38:01 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
serg_svd это один из кучи вариантов программы, пробовал всяко.
выход из бесконечности и должен быть только по прерыванию кнопки. главная беда была что возвращение после прерывания кнопки приходилось в долгий цикл, и пока он до конца не доходил - кина не случалось
собсна, я уже решил проблему тупо, некрасиво и в лоб. самому противно


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 17, 2017 17:10:04 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 243
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2471
Откуда: KMV
Рейтинг сообщения: 0
Да нет там у вас решения. В прерывании изменяетсятолько значение переменной В. А оператор goto находится вне двух бесконечных циклов. Поэтому и не работает

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 17, 2017 17:18:18 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
вот так работает. но мне не нравится. но работает
Цитата:
$Regfile="attiny85.dat"
$Crystal=8000000
$hwstack=40
$swstack=16
$framesize=32


Config Portb.0 = Output 'R
config portb.1 = output 'G
config portb.4 = output 'B
Config PORTB.3 = output 'фонарик
Config PINB.2 = input 'кнопка
Config Int0 = Falling : On INT0 Button
Config Timer1 = Timer , Prescale = 1 : On Timer1 Pwm_prog : Enable Timer1 : Enable Interrupts : start timer1 : Enable Int0

Dim S As Byte , A as Byte , C(3) as byte , B as Byte , R as Byte

for A=0 to 63
C(1)=lookup(A , TAB_PWM)
waitms 20
next

Do

If R=0 then
PORTB.3 = 0
for A=0 to 63 'тут ШИМ, режим 1 (по умолчанию)
if R=0 then
C(2)=lookup(A , TAB_PWM)
waitms 20
else
goto 1
end if
next

for A=63 to 0 step -1 'óìåíüøàåì êðàñíûé
if R= 0 then
C(1)=lookup(A , TAB_PWM)
waitms 20
else
goto 1
end if
next
waitms 100
for A=0 to 63 'óâåëè÷èâàåì ñèíèé
if R=0 then
C(3)=lookup(A , TAB_PWM)
waitms 20
else
goto 1
end if
next

for A=63 to 0 step -1 'óìåíüøàåì çåëåíûé
if R=0 then
C(2)=lookup(A , TAB_PWM)
waitms 20
else
goto 1
end if
next
waitms 100
for A=0 to 63 'óâåëè÷èâàåì êðàñíûé
if R=0 then
C(1)=lookup(A , TAB_PWM)
waitms 20
else
goto 1
end if
next

for A=63 to 0 step -1 'óìåíüøàåì ñèíèé
if R=0 then
C(3)=lookup(A , TAB_PWM)
waitms 20
else
goto 1
end if
next
waitms 200
end if

1:
If R=1 Then
C(1) = 0 : C(2) = 0 : C(3) = 0 : PORTB.3 = 1 'тут фонарик (режим2)
End if

loop

end



Pwm_prog:
Incr S

if S=255 then S=0

If S<C(1) Then Set Portb.0 Else Reset Portb.0

If S<C(2) then Set Portb.1 Else Reset Portb.1

If S<C(3) then Set Portb.4 Else Reset Portb.4

Return

Button:
Incr R
waitms 75 'потому что кнопка плохая, вот и 75
if R>1 then R = 0
GIFR = 64
Return


TAB_PWM:
Data 0 , 0 , 0 , 0 , 1 , 2 , 3 , 3 , 5 , 6 , 7 , 8 , 10 , 12 , 14 , 15
Data 17 , 20 , 22 , 24 , 27 , 30 , 32 , 35 , 38 , 42 , 45 , 48 , 52 , 56 , 59 , 63
Data 67 , 71 , 76 , 80 , 85 , 89 , 94 , 99 , 104 , 109 , 115 , 120 , 126 , 131 , 137 , 143
Data 149 , 155 , 161 , 168 , 174 , 181 , 188 , 195 , 202 , 209 , 216 , 224 , 231 , 239 , 247 , 255



Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 18, 2017 11:51:06 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 243
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2471
Откуда: KMV
Рейтинг сообщения: 0
IDok, я баском немного подзабывать начал, перешел на СИ (поэтому прошу прощения, если где-то в синтаксисе ошибусь). Но поскольку Вам не отвечают, решил включится.
Полностью прописывать прогу не буду, опишу смысл, как вижу реализацию
Код:
'объявление функций
DECLARE SUB фонарик
DECLARE SUB ШИМ

'здесь основная программа
do
select case B
case 0: call ШИМ
case 1: call фонарик
end select
loop
end

'здесь обработчик прерывания от кнопки
button:
Incr B
[s]waitms 10[/s] ' в обработчике прерываний нежелательно и вредно делать какие либо задержки
if B>2 then B = 0
return


waitms 10 ' в обработчике прерываний нежелательно и вредно делать какие либо задержки

в итоге Ваша программа всегда будет крутится только по одному бесконечному циклу.
Далее, нужно будет смотреть уже более конкретно. Возможно, нужно будет ввести флаги и выполнять код по ним.
А то в моем примере исполнение кода будет бегать либо в функции ШИМ, либо в фонаре бесконечно.

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 18, 2017 12:15:46 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
serg_svd спасибо за ответ. ну лето, выходные, все на даче шашлык компилят...
задержка в прерывании - это антидребезг.
главная моя проблема была - как выйти из ШИМа по прерыванию СРАЗУ, а не после окончания
что-то упускаю, но никак не пойму что


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 18, 2017 12:34:17 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 243
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2471
Откуда: KMV
Рейтинг сообщения: 0
IDok писал(а):
задержка в прерывании - это антидребезг.

Я понял, но антидребезг нужно выносить из прерывания в основной цикл и там обрабатывать.

У Вас там циклов в последнем коде немеряно. При чем много повторяющихся. Надо смотреть как их объединить.
Кроме того, цикл не обязательно делать на операторах for-to-next. Можно и на do-loop, while-do.
Просто ввести в них счетчик и инкрементировать его. Кроме этого добавить в условие ту же переменную В и программа будет вылетать из такого цикла, если переменная изменит свое значение.
В общем вариантов много. Я в целом задачу не представляю, но вы для себя разбейте программу на блоки, максимально их упростите и оптимизируйте, а дальше объединяйте.
Я не спец в программировании, но именно так и делаю. Пишу отдельную функцию, отлаживаю ее. А далее оптимизирую совместную работу со следующей функцией

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 18, 2017 12:55:47 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
serg_svd многоцикловый цикл - это ШИМ управления RGB-светодиодом. типа лампы настроения. куча циклов - потому что значения ШИМ читаются из таблицы внизу программы. есть вариант и на полностью программном шиме, там да - без кучи фор-некст


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 19, 2017 07:41:55 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
собсна вопрос уважаемым котам - как навести красоту на программу? ну явно же есть способ выходить из подпрограммы по прерыванию, не дожидаясь окончания подпрограммы. но я его не вижу :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 19, 2017 08:16:32 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 243
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2471
Откуда: KMV
Рейтинг сообщения: 0
IDok писал(а):
но я его не вижу

Так я ж советовал. Перепишите циклы на
Код:
while условие
wend

и контроллер не будет прогонять весь код, а вылетать из цикла по условию.
Или, если писать ту же обработку ШИМ в виде функции, то и выходить из нее по
Код:
return

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 19, 2017 08:31:28 
Встал на лапы

Зарегистрирован: Ср фев 01, 2017 17:57:15
Сообщений: 93
Рейтинг сообщения: 0
serg_svd
так он и сейчас вылетает по условию. а будет оно оформлено в виде If-THEN или WHILE - разницы не особо. все равно в каждом маленьком цикле идет своя проверка на переменную прерывания. ШИМ в виде подпрограммы не изменит ничего. что сейчас он автоматом возвращается в начало программы что по return... (пробовал я и с подпрограммами, результат тот же). мне же хочется найти вариант "как у больших" - когда в главном цикле только опрос кнопки и условия перехода, а сами режимы где-то там, за горизонтом. и когда по прерыванию программа сразу переходит в главный цикл, а не возвращается к месту прерывания и не ждет окончания режима


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 25, 2017 00:22:27 
Слесарь-программист
Аватар пользователя

Карма: 21
Рейтинг сообщений: 88
Зарегистрирован: Вт сен 11, 2012 23:08:28
Сообщений: 341
Откуда: город Кстово Нижегородская обл.
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Кто пробовал выводить VGA на Xmega256A3 не только текстом, но и графикой?
Если да, то как связывали два контроллера между собой?
У меня серия А3, там нет EBI (аппаратное расширение памяти), развёртку (синхро сигналы) сделал на 640х480, но с использованием внутренней памяти вывести получилось 280х240 или 35х20 символов.
Частота МК 45мГц (кварц 5мГц х 9).
Как-то надо передать на МК 3 бита (на 1 точку или букву), в три бита уложить информацию, к примеру:
Первый байт:
X - номер бита (для графики или текста)
Информация о OR AND стереть
Информация вывода текст/графика
Второй бит:
Y - номер линии 0-240
Третий бит:
Символ или чего нибудь ещё.

Как ни пробовал, всё никак не состыкую, даже многодрыгом не стабильность. UART в скорости проигрывает, USART обработать быстро не получается (МК нагружен сильно).
Так-то вот, что получилось на 1 кристале без внешней памяти:
https://www.youtube.com/watch?v=XZfVLQdSYS4
А это с внешней памятью, но внешняя память программно реализована, так как в серии А3 нет EBI, контроллер был просто в прерываниях, но всё-же:
https://www.youtube.com/watch?v=VLxxv96ZLmQ
https://www.youtube.com/watch?v=XThpf852ldY

Если кому интересно, выложу проект, всё-же порой VGA интерфейс в разных проектах очень актуален и дешевле большого графического LCD экрана.
Чисто теоретически, то, что сейчас работает от внутренней памяти (использовано 8,4кб), имеет достаточный ресурс и вполне может послужить каким нибудь прибором, к примеру измерительным или ЭКГ или чего нибудь ещё. Но при нагрузке есть проблемы с помехами в сигнале, хотя это лечится суровой оптимизацией.
Сейчас проблема управления этой картой, причём так, чтоб управляющий контроллер не тормозил на отправке данных, ожидая её обработки. Может есть какая возможность аппаратно влазить во внутреннюю память контроллера?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июл 02, 2017 11:22:13 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 223
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1352
Рейтинг сообщения: 0
Прошу прощения за наверняка занудный вопрос, но перекопать почти 300 страниц темы я не в состоянии. Понадобилось поработать в АВР Бейсике. Переустанавливал с десяток разных сборок Баскома. И демо, и крякнутые, и полные. Все работали, но ни один не выдает HEX - файла. Галочки на bin и hex - стоят!!!. Что у меня за проклятие такое???
При компилировании на долю секунды выдает голубое окно с надписью вроде как PASS 1 и всё.
Прим: Работаю на ноуте. КОМ и ЛПТ портов на нем нет.
С уважением.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июл 02, 2017 11:52:17 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 37
Рейтинг сообщений: 303
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2225
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
И ошибок компиляции нет?

_________________
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июл 02, 2017 12:02:37 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 223
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1352
Рейтинг сообщения: 0
Ой блиииин. Чтоб он ошибки на экран выдал, оказывается влияет галочка там же где для bin и hex.
А я думал она только для выходных файлов. Прошу простить PICBasic-оюзера.
Спаааасибочки.


Последний раз редактировалось Ariadna-on-Line Вс июл 02, 2017 12:30:51, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июл 02, 2017 12:23:47 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 439
Зарегистрирован: Чт ноя 15, 2012 20:47:59
Сообщений: 2082
Откуда: Крымск
Рейтинг сообщения: 0
Выложите файлик здесь, вам его скомпилируют на рабочей программе!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 19:43:29 
Встал на лапы

Зарегистрирован: Ср июл 10, 2013 21:30:16
Сообщений: 97
Рейтинг сообщения: 0
Добрый день.
Как настроить прерывание по таймеру чтобы счетчик считал секунды ? Камень ATMEGA32 , внутренний кварц 8 МГц.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:04:31 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
тактовая сколько?

Добавлено after 12 minutes 51 second:
если 8МГц то:
таймер1, делитель 256, режим СТС, OCR1A=31250, прерывание по совпадению:
0x00->TCCR1A, 0x0C->TCCR1B, 0x7A->OCR1AH, 0x12->OCR1AL, 0x10->TIMSK

Добавлено after 4 minutes 38 seconds:
sei забыл
прерывание по совпадению OCR1A будет вызываться 1 раз в секунду.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:05:46 
Встал на лапы

Зарегистрирован: Ср июл 10, 2013 21:30:16
Сообщений: 97
Рейтинг сообщения: 0
Как все это правильно написать в BASCOM ?


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:18:50 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
чето я про ассемблер подумал, про регистры...
а тут так и пишешь: TCCR1A=$00 вроде так 16ричные цифры здесь пишутся

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:25:00 
Встал на лапы

Зарегистрирован: Ср июл 10, 2013 21:30:16
Сообщений: 97
Рейтинг сообщения: 0
$regfile = "m32def.dat" ' ìåãà8
$crystal = 8000000
Config Tccr1a = 0x00
Do
Loop
End

Вот так записал , компилятор выдает ошибку.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6019 ]     ... , , , 274, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y