Страница 293 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт янв 16, 2020 19:52:06
goldskif
[uquote="Мурик",url="/forum/viewtopic.php?p=3774851#p3774851"]
goldskif писал(а):Вставляю Attiny2313A в USBASP, жму F4 - идентификация. Он ругается, что найденная 2313 не соответствует указанной 2313A
МК куплены в Китае?
Может перемаркировка?[/uquote]
разные. Купленные в разных магазинах в разное время. В чипдипе тоже..
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб янв 18, 2020 00:01:04
ВасилийВикторович
Ребята, подскажите дураку, вот стандартный пример из хелпа баскома:
Код: Выделить всё
Spi_isr:
push r24 ; save used register
in r24,sreg ; save sreg
push r24
B = Spdr
Set Rbit ' we received something
pop r24
!out sreg,r24 ; restore sreg
pop r24 ; and the used register
Return
spislave
Подскажите, что и как изменить чтобы принять два байта?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 19, 2020 13:08:32
ВасилийВикторович
что то я не могу понять этого самостоятельно...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 19, 2020 19:01:33
kip96
В этом примере баскома минимум. И вообще, в этом куске столько же spislave, сколько и в любой другой программе
Вероятно это подпрограмма по прерыванию, где сохраняют регистры, и потом восстанавливают, а между этим приравнивают переменные, и устанавливают бит, или вывод.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн янв 20, 2020 12:55:43
ВасилийВикторович
[uquote="kip96",url="/forum/viewtopic.php?p=3776773#p3776773"]В этом примере баскома минимум.[/uquote]
С сохранением и восстановлением регистров это понятно, тут вопросов нет.
мне одно не понятно, вот например в прерывании принимается байт из spi
Вопрос как принять два байта именно в прерывании.
Пробовал так но не прокатывает, и в b(1) и в b(2) одинаковые данные из того байта что был отправлен первым.
Если без прерывания просто командой
То всё ок, но если эту команду использовать в прерывании от spi то глючит не по детски.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн янв 20, 2020 13:09:59
nikolaew
[uquote="ВасилийВикторович",url="/forum/viewtopic.php?p=3777144#p3777144"]Вопрос как принять два байта именно в прерывании.[/uquote]
Прерывание вызывается когда SPI принял байт. Один байт. Второй будет в следующем прерывании
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн янв 20, 2020 13:42:12
ВасилийВикторович
то есть в прерывании принимаю байт, устанавливаю бит что принят первый байт и если произошло второе прерывание и бит = 1 то записываю уже в другую переменную и сбрасываю бит, так?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт янв 28, 2020 16:47:43
nikolaew
[uquote="ВасилийВикторович",url="/forum/viewtopic.php?p=3777157#p3777157"]в прерывании принимаю байт, устанавливаю бит что принят первый байт[/uquote]
Ну это уже как вы придумаете протокол. "Принять два байта" это не два пальца. Какой из них первый, если передача идет постоянно?. IMHO конечно, но в любой многобайтной посылке должен присутствовать маркер начала кадра и контр. сумма в конце. Принимать в промежуточный буфер, если контрсумма в порядке - выдавать данные в обработку.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт фев 25, 2020 20:41:19
OLEGKARAS
Доброго времени.
Народ помогите решить проблему . Нужен УАРТ для приема строки по количеству символов , и если по какой то причине передача в друг прекращается то мк не висел ( по тому что ждет все символы), если у кого есть пример то выручите пожалуйста меня а то уже не знаю куда обратится.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт фев 25, 2020 21:10:33
Hot
Народ подскажите что делаю не так?
Надо по кнопке INT0 просыпаться из Powersave помигать диодом и уснуть до сл.нажатия.
после 2 нажатий все зависает
Код: Выделить всё
$regfile = "m48def.dat"
$crystal = 1000000
$framesize = 32
$hwstack = 40
$swstack = 16
Dim B As Byte
Config Portd = Output
Config Portc = Output
Config Portd.2 = Input
Config Int0 = Low Level
Enable Interrupts
Enable Int0
On Int0 Button:
Button:
For B = 0 To 3
Portd.0 = 1
Waitms 200
Portd.0 = 0
Waitms 200
Next B
Powersave
Return
'
End
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт фев 25, 2020 21:23:56
Jack_A
передача в друг прекращается то мк не висел
Просто. При начале приёма запускается тайиер. Каждый поступивший байт обнуляет таймер. Если он досчитал до заданного значения - аварийно завершаем приём, пытаемся восстановить, если это возможно, принятую строку, и устанавливаем состояние ГОТОВНОСТЬ К ПРИЁМУ. Как на Баскоме - не знаю, не пользуюсь. А нормально, на асме - как два байта...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср фев 26, 2020 05:10:36
Тихий демон
[uquote="Hot",url="/forum/viewtopic.php?p=3796947#p3796947"]Народ подскажите что делаю не так?[/uquote]
Вынесите весь код из прерывания в главный цикл, а от прерывания достаточно просто события.
Код: Выделить всё
Enable Interrupts
Enable Int0
On Int0 Button:
do 'главный цикл
For B = 0 To 3
Portd.0 = 1
Waitms 200
Portd.0 = 0
Waitms 200
Next B
Powersave
loop
End
Button:
Return
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср фев 26, 2020 21:12:52
Hot
спасибо большое , в симуляторе работает, пойду с железом сражатся
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт фев 27, 2020 21:51:11
OLEGKARAS
Помогите пожалуйста. Нужно из строки (Dim Pzem(25) As Byte) = F8041408988BF800017A7D0003073D000001F4005F0000930E вырезать скажем 0898 и перевести в число должно получится 2200 . Нужно сделать без Overlay.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб фев 29, 2020 11:30:11
PiKey
[uquote="OLEGKARAS",url="/forum/viewtopic.php?p=3798087#p3798087"]Нужно из строки (Dim Pzem(25) As Byte) = F8041408988BF800017A7D0003073D000001F4005F0000930E[/uquote]
В представленном виде оно, по идее, не as Byte, а as String. Для строк копайте в сторону Split, Instr и Hexval.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт мар 05, 2020 11:45:38
Denis40
Друзья ,помогите пожалуйста или подскажите как изменить этот код,в программировании не силен ,есть только азы и то со школы ).
Все работает,но хотелось бы еще и переключать диапазоны .
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт мар 06, 2020 12:41:43
Denis40
Всем спасибо,смог и сам)
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт мар 17, 2020 14:38:06
rojnov
Приветствую всех!
Такая задача. Понадобилось мне для одного проекта задействовать LCD дисплей 16*2. Было у меня пара штук абсолютно новых. Сделал код, запускаю, вроде основа работает, но на экране- пустота. Для проверки набил классический кусок кода "Hello world" - на экране пустота. Облазил все доступные источники информации - вроде все делаю правильно. Но почему оно не хочет работать? Я первый раз сталкиваюсь с ЖК индикатором, может быть что-то делаю неправильно. Гляньте, кто в этом силен, а то застрял на ерунде.
$regfile = "2313def.dat"
$crystal = 4000000
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.3 , Rs = Portb.4
Config Lcd = 16x2
Initlcd
Cls
Locate 1 , 1
Lcd "Hello"
Lowerline
Lcd "world"
Wait 10
Cls
End
Взято из учебников.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт мар 17, 2020 15:04:30
vem566
Включить подсветку. Установкой контрастности получить еле видные квадраты. В программе все верно, если не перепутаны пины.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт мар 17, 2020 15:15:31
kip96
Ещё пин RW на землю паосадить