В этом примере баскома минимум. И вообще, в этом куске столько же spislave, сколько и в любой другой программе Вероятно это подпрограмма по прерыванию, где сохраняют регистры, и потом восстанавливают, а между этим приравнивают переменные, и устанавливают бит, или вывод.
_________________ Все делают ошибки, только мудрецы - новые, а дураки - старые.
С сохранением и восстановлением регистров это понятно, тут вопросов нет. мне одно не понятно, вот например в прерывании принимается байт из spi
Код:
B = Spdr
Вопрос как принять два байта именно в прерывании. Пробовал так но не прокатывает, и в b(1) и в b(2) одинаковые данные из того байта что был отправлен первым.
Код:
B(1) = Spdr B(2) = Spdr
Если без прерывания просто командой
Код:
Spiin b(1) , 2
То всё ок, но если эту команду использовать в прерывании от spi то глючит не по детски.
то есть в прерывании принимаю байт, устанавливаю бит что принят первый байт и если произошло второе прерывание и бит = 1 то записываю уже в другую переменную и сбрасываю бит, так?
в прерывании принимаю байт, устанавливаю бит что принят первый байт
Ну это уже как вы придумаете протокол. "Принять два байта" это не два пальца. Какой из них первый, если передача идет постоянно?. IMHO конечно, но в любой многобайтной посылке должен присутствовать маркер начала кадра и контр. сумма в конце. Принимать в промежуточный буфер, если контрсумма в порядке - выдавать данные в обработку.
Доброго времени. Народ помогите решить проблему . Нужен УАРТ для приема строки по количеству символов , и если по какой то причине передача в друг прекращается то мк не висел ( по тому что ждет все символы), если у кого есть пример то выручите пожалуйста меня а то уже не знаю куда обратится.
Просто. При начале приёма запускается тайиер. Каждый поступивший байт обнуляет таймер. Если он досчитал до заданного значения - аварийно завершаем приём, пытаемся восстановить, если это возможно, принятую строку, и устанавливаем состояние ГОТОВНОСТЬ К ПРИЁМУ. Как на Баскоме - не знаю, не пользуюсь. А нормально, на асме - как два байта...
Помогите пожалуйста. Нужно из строки (Dim Pzem(25) As Byte) = F8041408988BF800017A7D0003073D000001F4005F0000930E вырезать скажем 0898 и перевести в число должно получится 2200 . Нужно сделать без Overlay.
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт мар 05, 2020 11:45:38
Родился
Зарегистрирован: Чт мар 05, 2020 11:27:08 Сообщений: 2
Рейтинг сообщения:0
Друзья ,помогите пожалуйста или подскажите как изменить этот код,в программировании не силен ,есть только азы и то со школы ). Все работает,но хотелось бы еще и переключать диапазоны .
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт мар 17, 2020 14:38:06
Встал на лапы
Зарегистрирован: Вс мар 27, 2011 07:48:48 Сообщений: 127 Откуда: г. Екатеринбург
Рейтинг сообщения:0
Приветствую всех! Такая задача. Понадобилось мне для одного проекта задействовать LCD дисплей 16*2. Было у меня пара штук абсолютно новых. Сделал код, запускаю, вроде основа работает, но на экране- пустота. Для проверки набил классический кусок кода "Hello world" - на экране пустота. Облазил все доступные источники информации - вроде все делаю правильно. Но почему оно не хочет работать? Я первый раз сталкиваюсь с ЖК индикатором, может быть что-то делаю неправильно. Гляньте, кто в этом силен, а то застрял на ерунде.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 108
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения