Доделал кооперативный шедулер.
Нужно только сделать буферизированный ввод, а то он сейчас блокирует все.
Ну и дописать примитивы для временных задержек (возможно и синхронизации).
roboforum.ruТехнический форум по робототехнике. |
|
|
Vooon писал(а):Доделал кооперативный шедулер.
Нужно только сделать буферизированный ввод, а то он сейчас блокирует все.
Ну и дописать примитивы для временных задержек (возможно и синхронизации).
L 40
S 40 00 01 S 41 06 P
SWAASR003001000C02P
# Установить длительность импульса на выходе №17 в 1200 мкс (0x04B0)
S 40 0D 11 B004 P
SWAAAAP
# Установить длительность импульса на выходах 0,1,2 в 512, 768 и 1024 мкс
S 40 0D 00 0002 01 0003 02 0004 P
SWAAAAAAAAAAP
Биты 0..2
00 - внешняя опора
01 - опора = AVCC
10, 11 - внутренняя опора
Бит 3
0 - 8-bit
1 - 11-bit
L40
L40
# Внутренняя опора, 8 бит, все 8 каналов
S 40 0E 03 FF P
SWAAAP
# Читаем каналы 0-8
S 40 0F 00 S 41 08 P
SWAASRFFD7D7D6D5D4D3D2P
# AVCC, 8 бит, все 8 каналов
S 40 0E 01 FF P
SWAAAP
# Читаем каналы 0-8
S 40 0F 00 S 41 08 P
SWAASR12ABAAA8A6A5A4A2P
# Внутренняя опора, 16 бит, все 8 каналов
S 40 0E 07 FF P
# Читаем каналы 0-8
S 40 0F 00 S 41 10 P
SWAASR37005C0355034D03470340033A033203P
# Читаем каналы 1-8
S 40 0F 01 S 41 0E P
SWAASR5E0356034E03480341033C033703P
blindman писал(а):Следует ли сделать 8 регистров, по 1 на канал?
blindman писал(а):Следует ли всегда выдавать 16-битные числа, независимо от режима преобразования?
blindman писал(а):Драйвер не знает, сколько байт запрошено для чтения. Это не дает возможности эффективно реализовать автоинкремент. Например драйвер АЦП может выдать до 8 значений - но я вынужден был сделать, чтобы он всегда выдавал все значения до конца таблицы. Предлагаю в параметре data_len передавать драйверу количество запрошенных байт, а не доступный размер буфера.
blindman писал(а):Надо определиться с порядком байт для 2-байтных(и более) значений. Мне кажется естественным передавать сначала младший байт, именно такой порядок используется в контроллерах AVR.
=DeaD= писал(а):Чем это плохо? Производительность?blindman писал(а):Драйвер не знает, сколько байт запрошено для чтения. Это не дает возможности эффективно реализовать автоинкремент. Например драйвер АЦП может выдать до 8 значений - но я вынужден был сделать, чтобы он всегда выдавал все значения до конца таблицы. Предлагаю в параметре data_len передавать драйверу количество запрошенных байт, а не доступный размер буфера.
Vooon писал(а):Порядок байт: старший — младший.
Vooon писал(а):На данный момент и при работе через юсарт на уровне виртуального слейва
мы не знаем сколько байт запрошено.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1