Например TDA7294

Форум РадиоКот • Просмотр темы - CooCox STM32F303 быстрое чтение порта
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб дек 05, 2020 04:39:16

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


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



Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 18:04:38 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 22
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 905
Откуда: Мелеуз
Рейтинг сообщения: 0
Использую COOCOX,как можно организовать самое быстрое чтение порта за целое количество тактов?
Сейчас у меня так-
Код:
unsigned int x;
    x=0;
         Buffer[x++]=GPIOB->IDR ;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;//10
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;//20
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
   Buffer[x++]=GPIOB->IDR;
     ......

но появляется откуда то странная неравномерность в каждом отсчете по количеству тактов
Никаких таймеров и прерываний в программе не задействованы,тактовая 72 МГц


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 19:19:16 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 99
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 812
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
Конвейер захлебывается.

_________________
IVL ex UA6PJ OSC_F303&F103


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 19:32:37 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 206
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1233
Рейтинг сообщения: 0
как можно организовать самое быстрое чтение порта за целое количество тактов?

Чтобы F3 читал за целое число тактов должно быть выставлено 0WS, для 72 MHz этого можно добиться выполняя код из CCM RAM, будет 2 такта если компилятор все скомпилит в LDR + STR. По нормальному нужно сразу на ассме и писать:
Код:
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");

Из флеша будет 2.5 такта и больше, в зависимости от величины WS.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 19:35:25 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 99
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 812
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
Вот почитай https://radiokot.ru/forum/viewtopic.php?f=59&t=160643

_________________
IVL ex UA6PJ OSC_F303&F103


Вернуться наверх
 
Вебинар «Практическое использование TrustZone в STM32L5»(10.12.2020)

Приглашаем на вебинар, посвященный экосистеме безопасности и возможностях, которые появились у разработчиков благодаря новой технологии TrustZone в микроконтроллерах STM32L5. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 20:57:45 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 22
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 905
Откуда: Мелеуз
Рейтинг сообщения: 0
240265, я это читал,толком не понятно как считать быстро-одни рассуждения )))

Добавлено after 51 minute 37 seconds:
Попробовал так
Код:
uint16_t arr[300];
const uint32_t idr = (uint32_t)&GPIOB->IDR;

      asm("PUSH {R0, R1, R2}");

      asm("MOV R2, %0" : : "r" (arr));//arr= http://docplayer.ru/54665016-Optimizacii-v-staticheskih-i-dinamicheskih-kompilyatorah-i-ih-primenenie-na-primere-gcc-llvm-javascriptdvizhkov.html
      asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));
      asm("MOVT R1, %0" : : "n" (idr >> 16));

        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        asm("LDRB R0, [R1]");
        asm("STRB R0, [R2], #1");
        ......
        asm("POP {R0, R1, R2}");


Почему то буфер не заполняется данными с порта B

Добавлено after 9 minutes 15 seconds:
Стоп!arr это адрес буфера а не переменная?


Вернуться наверх
 
SiC MOSFET = высокий КПД источника питания

650 В карбид-кремниевые (SiC) MOSFET компании Wolfspeed имеют самый низкий в отрасли показатель сопротивления открытого канала и наименьшую его зависимость от температуры, что дает им преимущество не только перед обычными кремниевыми (Si) 650 В MOSFET, но и перед нитрид-галлиевыми транзисторами.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 21:00:46 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 206
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1233
Рейтинг сообщения: 0
Стоп!arr это адрес буфера а не переменная?

Все там правильно, единственное если используешь LDRB/STRB, то массив должен быть uint8_t. Или пиши LDRH...


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 21:32:16 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 99
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 812
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
В майне обьявляю volatile uint8_t buffer[1024];
.
.
Затем вызываю ReadADC((uint32_t)&buffer[0], Band );

Добавлено after 56 seconds:
Но это в Кейле.


Вложения:
ReadADC.c [60.16 KiB]
Скачиваний: 77

_________________
IVL ex UA6PJ OSC_F303&F103
Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Чт окт 24, 2019 22:08:08 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 22
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 905
Откуда: Мелеуз
Рейтинг сообщения: 0
У меня ошибки...


Добавлено after 17 minutes 27 seconds:
исходник пока такой


Вложения:
main.c [19.56 KiB]
Скачиваний: 211
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 08:24:13 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 10
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 551
Рейтинг сообщения: -2
У меня ошибки...
исходник пока такой
Столько ошибок в элементарном коде.... :shock: Надо всё-таки мануалы читать перед тем как что-то писать. Если конечно не чукча... :)))
Цитата:
asm("PUSH {R0, R1, R2}");
Это зачем? В чём смысл? Читайте раздел про Calling conventions для своего компилятора.
Цитата:
asm("MOV R2, %0" : : "r" (arr));
Разве arr у вас внутри функции - в регистре?
Цитата:
asm("MOV R2, %0" : : "r" (arr));//arr= http://docplayer.ru/54665016-Optimizaci ... zhkov.html
asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));
asm("LDRH R0, [R1]");
Зачем распилили один asm-оператор на множество отдельных??? Чтобы себе в ногу выстрелить? Вы разве не понимаете, что всё это внутри си-функции и компилятор вправе вставить между двумя вашими соседними asm-операторами другие команды, которые попортят содержимое R0,R1?
Сам синтаксис asm-оператора сделан так, чтобы в него включить весь код, на входе - загрузив все нужные регистры из переменных, на выходе - выгрузив в переменные. А между двумя соседними асм-операторами сохранность регистров не гарантируется.
И вообще - зачем использовать явно-указанные регистры R0,R1,R2? Синтаксис asm-оператора позволяет этого не делать избегая таким образом конфликтов с окружающим си-кодом.
И что такое "(idr & 0xFFFF)"? Зачем? :shock:
Цитата:
asm("STRH R0, [R2], #1");
Если у Вас массив типа u16, то почему шаг между соседними его элементами делаете 1 байт? Читайте описание системы команд Cortex-M.
И почему нет указания компилятору что данные асм-операторы обращаются к памяти? Читайте описание синтаксиса оператора asm!

PS: Да и вообще - такой код лучше в отдельном асм-файле писать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 12:19:10 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 206
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1233
Рейтинг сообщения: 0
Это зачем? В чём смысл? Читайте раздел про Calling conventions для своего компилятора.

Novice user взял мой пример кода из старой темы, Calling conventions тут не при чем, регистры нужно сохранять потому что компилятор не отслеживает какие из них меняются в случае использования инлайн ассемблера.

Цитата:
asm("MOV R2, %0" : : "r" (arr));

Разве arr у вас внутри функции - в регистре?

Arr не обязана быть в регистре, "r" указывает на то, что вместо %0 должен быть подставлен регистр. Конкретно этот код скомпилируется в :
Код:
ldr r3, [pc, #764]
mov r2, r3


Цитата:
Зачем распилили один asm-оператор на множество отдельных??? Чтобы себе в ногу выстрелить? Вы разве не понимаете, что всё это внутри си-функции и компилятор вправе вставить между двумя вашими соседними asm-операторами другие команды, которые попортят содержимое R0,R1?
Сам синтаксис asm-оператора сделан так, чтобы в него включить весь код, на входе - загрузив все нужные регистры из переменных, на выходе - выгрузив в переменные. А между двумя соседними асм-операторами сохранность регистров не гарантируется.

Согласен, надежнее сделать все в виде одного asm оператора, хотя если у него нет выходных операндов, то все asm() неявно являются volatile и не оптимизируются.

Цитата:
И вообще - зачем использовать явно-указанные регистры R0,R1,R2? Синтаксис asm-оператора позволяет этого не делать избегая таким образом конфликтов с окружающим си-кодом.

Обычно такой код используют во всяких осциллах, там важны тайминги и если вместо регистров подставлять что-то другое, то может получится как с загрузкой arr, когда была вставлена дополнительная инструкция, а добавить PUSH/POP вроде как не проблема.

Цитата:
И что такое "(idr & 0xFFFF)"? Зачем? :shock:

В половину регистра 32-х битное значение не запихнешь, да компилятор это и не позволит, если оставить просто idr, то получим ошибку: immediate value out of range.

Цитата:
Если у Вас массив типа u16, то почему шаг между соседними его элементами делаете 1 байт? Читайте описание системы команд Cortex-M.
И почему нет указания компилятору что данные асм-операторы обращаются к памяти? Читайте описание синтаксиса оператора asm!

Да, должно быть
Код:
STRH R0, [R2], #2


В итоге сейчас бы я написал, наверно, так:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 15:26:20 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 10
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 551
Рейтинг сообщения: 1
Novice user взял мой пример кода из старой темы, Calling conventions тут не при чем, регистры нужно
сохранять потому что компилятор не отслеживает какие из них меняются в случае использования инлайн ассемблера.

Не отслеживает он потому, что написано через одно место. Не надо внутри asm() использовать явно заданные регистры. И тогда компилятор всё нормально отследит.
Ну по крайней мере в IAR так.

Согласен, надежнее сделать все в виде одного asm оператора, хотя если у него нет выходных операндов, то все asm() неявно являются volatile и не оптимизируются.
Оптимизация тут не при чём. Причину Вы сам привели выше. Когда в предыдущем asm() не указали явно как грузить адрес arr и компилятор сделал это через доп. регистр. Повезло что R3 до этого не был использован в предыдущих asm(). Иначе - попортил бы его, возможно.

Обычно такой код используют во всяких осциллах, там важны тайминги и если вместо регистров подставлять что-то другое, то может получится как с загрузкой arr, когда была вставлена дополнительная инструкция, а добавить PUSH/POP вроде как не проблема.

Так я же говорю не про подстановку "чего-то другого", а про подстановку тех же регистров, но без явного указания номера регистра. Чтобы компилятор сам его выбирал, не конфликтуя с окружающим си-кодом.

В половину регистра 32-х битное значение не запихнешь, да компилятор это и не позволит, если оставить просто idr, то получим ошибку: immediate value out of range.
Ничего не понял. :shock: Причём тут половина регистра?? В idr вроде как - адрес порта GPIO. Что делает "asm("MOVW R1, %0" : : "n" (idr & 0xFFFF));"?
Берёт от адреса младшие 16 бит и потом с получившегося адреса пытается читать? И что будет? :dont_know:

Добавлено after 7 minutes 7 seconds:
В итоге сейчас бы я написал, наверно, так:
Явные регистры лучше не использовать. Тем более что все возможности для этого есть.
А также не указано, что внутри этого asm() есть обращение к памяти. А это очень важно при использовании оптимизации.
Вот пример как я делаю:
Код:
inline u32 AtomicAnd(u32 volatile *ptr, u32 arg)
{
  u32 r, i;
  asm(
    "p01: LDREX    %0, [%2]    \n"
    "     ANDS     %1, %0, %3  \n"
    "     STREX    %1, %1, [%2]\n"
    "     CMP      %1, #0      \n"
    "     BNE      p01           "
    : "=&r"(r), "=&r"(i)
    : "r"(ptr), "r"(arg)
    : "cc", "memory");
  i = i;
  return r;
}

Как видно - нет никаких завязок на явные регистры. Также прописано "cc", "memory".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 15:54:01 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 226
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1421
Рейтинг сообщения: 0
Код:
volatile uint16_t buf[1024];

template<unsigned N>
void inline Foo(volatile uint16_t *p) __attribute__((always_inline))
{
  if constexpr (N)
  {
    *p++=*(volatile uint16_t *)&GPIOB->IDR;
    Foo<N-1>(p);
  }
}

int main()
{
  Foo<50>(buf);
  Foo<100>(buf+50);
  Foo<100>(buf+150);
}

Оно? :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:02:20 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 22
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 905
Откуда: Мелеуз
Рейтинг сообщения: 0
У меня ошибки...
исходник пока такой
Столько ошибок в элементарном коде.... :shock: Надо всё-таки мануалы читать перед тем как что-то писать. Если конечно не чукча... :)))


PS: Да и вообще - такой код лучше в отдельном асм-файле писать.

я смотрю вы ас в обвинениях,и по вашему чукча-не человек?
я понятия не имею как встроить asm в coocox,мне написали-

я оттуда и взял код
прошу воздержаться от ответов в этой теме-толку от вас нет,уважаемый ЧЕЛОВЕК!!!или дайте конкретный ответ по теме,если на что-то способны кроме как обозвать обезъяной или что вы там имеете ввиду

Добавлено after 14 minutes 6 seconds:
Re: CooCox STM32F303 быстрое чтение порта
Прошу администраторов закрыть тему
Буду прорываться сам,всех благодарю за участие (и ЧЕЛОВЕКУ jcxz в особенности)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:08:31 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 10
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 551
Рейтинг сообщения: 1
я оттуда и взял код
прошу воздержаться от ответов в этой теме-толку от вас нет,уважаемый ЧЕЛОВЕК!!!или дайте конкретный ответ по теме,если на что-то способны кроме как обозвать обезъяной или что вы там имеете ввиду

Странно... вроде помогал, писал, пояснял... :dont_know: В ответ - какие-то обиды, да ещё 4 минуса влепили. Причём по всему форуму похоже прошли чтобы найти мои сообщения. И не лень было хе$#@й заниматься? Может лучше стоило это время потратить на хотя бы минимальное изучения вопроса и поднятия своего уровня компетенции с уровня плинтуса?
Или у вас критические дни??
Все остальные поняли мои посты, но до вас похоже так и не дошло. После таких "благодарностей" и желания никакого нет помогать таким как вы - бродите и дальше в своих 3-х соснах...
адье!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:14:56 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 22
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 905
Откуда: Мелеуз
Рейтинг сообщения: 0
и чем вы помогли? обозвали обезъяной? ваш срач после той строки даже читать не стал
насчет минусов-вы заслужили,если вы себя считаете ЧЕЛОВЕКОМ,а всех остальных обезъянами или кем там,плюса вы точно не заслужили

Добавлено after 1 minute 57 seconds:
буду лепить FIFO буфер,с такими ЧЕЛОВЕКАМИ как jcxz далеко не уедешь


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:18:32 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 10
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 551
Рейтинг сообщения: 1
и чем вы помогли? обозвали обезъяной? ваш срач после той строки даже читать не стал
насчет минусов-вы заслужили,если вы себя считаете ЧЕЛОВЕКОМ,а всех остальных обезъянами или кем там,плюса вы точно не заслужили

"уважаемый" у вас с головой всё в порядке?? Где я вас или кого-то ещё обезьяной назвал? Или ещё как-то обзывал?
А то что вы изволили назвать "срачем" - была попытка помочь вам же. Если у вас не хватает ума осмыслить советы - я тут не виноват. Да, грешен, больше помогать не буду пытаться.

PS: Похоже точно - критические дни.... :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:21:07 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 206
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 1233
Рейтинг сообщения: 0
jcxz, то рабочий код, он работал когда я его показывал в другой теме и сегодня я тоже его проверял. Соответственно никакой MOVW ничего там не читает из 16-ти битного адреса, MOVW и MOVT работают с 16-ти битными константами, константа туда и передается(после компиляции будет: movw r1, #1040). Просто там все делается явно, но конечно можно дать компилятору распределять регистры самостоятельно, это должно быть проще и пару байт он на этом должен сэкономить :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CooCox STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:23:53 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 22
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 905
Откуда: Мелеуз
Рейтинг сообщения: 0
то есть обозвать обезъяной или кем там-помощь? странная у вас помощь,Бог вам судья,уважаемый ЧЕЛОВЕК!!
тема закрыта!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: COOCOX STM32F303 быстрое чтение порта
СообщениеДобавлено: Пт окт 25, 2019 17:25:04 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 10
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 551
Рейтинг сообщения: 1
jcxz, то рабочий код, он работал когда я его показывал в другой теме и сегодня я тоже его проверял. Соответственно никакой MOVW ничего там не читает из 16-ти битного адреса, MOVW и MOVT работают с 16-ти битными константами, константа туда и передается

Читает не MOVW, а LDR после него. В том недоразумении, которое трудно назвать кодом, выложенном этим несчастным обиженным человеком.
Вы откройте тот файл, что он сюда постил - увидите. Я говорил про тот код.

Про Ваш код я ничего не говорил, у Вас с адресом всё нормально.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 19 ] 

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


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

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


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

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


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