Например TDA7294

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



Текущее время: Пн авг 21, 2017 15:32:16



Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5519 ]  На страницу Пред.  1 ... 271, 272, 273, 274, 275, 276  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 17, 2017 16:38:01 
Открыл глаза

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


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

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


Вернуться наверх
 Профиль  
 
От идеи до готового устройства! Нужен только EasyEDA!

Бесплатный инструмент для проектирования печатных плат - нарисуй свою плату прямо сейчас!

JLCPCB for PCB Prototyping, всего $2 за 10 печатных плат 10×10см. Доставка 2-3 дня.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

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

Зарегистрирован: Ср фев 01, 2017 18:57:15
Сообщений: 77
Рейтинг сообщения: 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



Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 18, 2017 12:51:06 
Мудрый кот
Аватар пользователя

Карма: 8
Зарегистрирован: Ср янв 16, 2008 09:34:04
Сообщений: 1839
Откуда: 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 ' в обработчике прерываний нежелательно и вредно делать какие либо задержки

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


Вернуться наверх
 Профиль  
 

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

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


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

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

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

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


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

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


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

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


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

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

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

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


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

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


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

Карма: 18
Зарегистрирован: Ср сен 12, 2012 00:08:28
Сообщений: 319
Откуда: город Кстово Нижегородская обл.
Рейтинг сообщения: 0
Кто пробовал выводить 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 12:22:13 
Держит паяльник хвостом
Аватар пользователя

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


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

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

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


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

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


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

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

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


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

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


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

Карма: 11
Зарегистрирован: Пт ноя 11, 2016 06:48:09
Сообщений: 689
Откуда: край интернета... самый край :(
Рейтинг сообщения: 0
тактовая сколько?

Добавлено 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 21:05:46 
Открыл глаза

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


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

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

_________________
В последнее время без ТЗ даже холиварить не интересно


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

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

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


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5519 ]  На страницу Пред.  1 ... 271, 272, 273, 274, 275, 276  След.



Часовой пояс: UTC + 3 часа [ Летнее время ]


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

Сейчас этот форум просматривают: Attenyuator и гости: 9


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

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


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