21.01.2015, 01:33
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Keil и русский язык
Сообщение от dosikus
|
В 5.12 все работает . Лечилку прилагаю
|
Спасибо,но у меня не работает.
|
|
|
|
21.01.2015, 03:02
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Keil и русский язык
Сообщение от YURALL72
|
STM32L152RBT6.В нём нет 9-битного spi.((((
|
Ну и что? Или ногодрыгом, или переупаковка на лету в режиме 16 бит.
|
|
|
|
21.01.2015, 03:29
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Keil и русский язык
Сообщение от STM32F0
|
Ну и что? Или ногодрыгом, или переупаковка на лету в режиме 16 бит.
|
Переупаковка не прокатит. Передаватся будут 16 бит,и после девятого,дисплей будет воспринимать как следующий байт.
И нужно передавать старшим битом вперёд,это сначала будут идти нули.Можно конечно сдвинуть
влево,но какой-же это аппаратный spi получится?Гемор и трата времени.Да и первая проблема не решается.
Подскажите пожалуйста как понимать PS[2:0]=XX0 ,на рисунке внизу справа.
Последний раз редактировалось YURALL72; 21.01.2015 в 04:00.
|
|
|
|
21.01.2015, 09:13
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Keil и русский язык
Сообщение от YURALL72
|
Спасибо,но у меня не работает.
|
Не работает что?
У тебя там часом не utf8 ?
Код:
|
while(1)
{
switch (UsartBuf)
{
case('h'):USART_WR_String("Hello world\r\n");break;
case('r'):USART_WR_String("Red led on\r\n");Led_Red_On;break;
case('g'):USART_WR_String("Green led on\r\n");Led_Green_On;break;
case('a'):USART_WR_String("all led off\r\n");Led_Red_Off;Led_Green_Off;break;
case('А'):USART_WR_String("Hello world\r\n");break;
case('Б'):USART_WR_String("Red led on\r\n");Led_Red_On;break;
case('В'):USART_WR_String("Green led on\r\n");Led_Green_On;break;
case('Г'):USART_WR_String("all led off\r\n");Led_Red_Off;Led_Green_Off;break;
default: break;
}
UsartBuf =0;
Delay_mS(10);
} |
Код:
|
;;;40 while(1)
000094 e054 B |L1.320|
|L1.150|
;;;41 {
;;;42 //Delay_mS(100);
;;;43
;;;44 switch (UsartBuf)
000096 482c LDR r0,|L1.328|
000098 7800 LDRB r0,[r0,#0] ; UsartBuf
00009a 28c0 CMP r0,#0xc0
00009c d02c BEQ |L1.248|
00009e dc08 BGT |L1.178|
0000a0 2861 CMP r0,#0x61
0000a2 d01f BEQ |L1.228|
0000a4 2867 CMP r0,#0x67
0000a6 d016 BEQ |L1.214|
0000a8 2868 CMP r0,#0x68
0000aa d009 BEQ |L1.192|
0000ac 2872 CMP r0,#0x72
0000ae d13f BNE |L1.304|
0000b0 e00a B |L1.200|
|L1.178|
0000b2 28c1 CMP r0,#0xc1
0000b4 d024 BEQ |L1.256|
0000b6 28c3 CMP r0,#0xc3
0000b8 d030 BEQ |L1.284|
0000ba 28c5 CMP r0,#0xc5
0000bc d138 BNE |L1.304|
0000be e026 B |L1.270|
|L1.192|
;;;45 {
;;;46 case('h'):USART_WR_String("Hello world\r\n");break;
0000c0 a027 ADR r0,|L1.352|
0000c2 f7fffffe BL USART_WR_String
0000c6 e034 B |L1.306|
|L1.200|
;;;47 case('r'):USART_WR_String("Red led on\r\n");Led_Red_On;break;
0000c8 a029 ADR r0,|L1.368|
0000ca f7fffffe BL USART_WR_String
0000ce 2002 MOVS r0,#2
0000d0 4921 LDR r1,|L1.344|
0000d2 6008 STR r0,[r1,#0]
0000d4 e02d B |L1.306|
|L1.214|
;;;48 case('g'):USART_WR_String("Green led on\r\n");Led_Green_On;break;
0000d6 a02a ADR r0,|L1.384|
0000d8 f7fffffe BL USART_WR_String
0000dc 2001 MOVS r0,#1
0000de 491e LDR r1,|L1.344|
0000e0 6008 STR r0,[r1,#0]
0000e2 e026 B |L1.306|
|L1.228|
;;;49 case('a'):USART_WR_String("all led off\r\n");Led_Red_Off;Led_Green_Off;break;
0000e4 a02a ADR r0,|L1.400|
0000e6 f7fffffe BL USART_WR_String
0000ea f44f3000 MOV r0,#0x20000
0000ee 491a LDR r1,|L1.344|
0000f0 6008 STR r0,[r1,#0]
0000f2 1040 ASRS r0,r0,#1
0000f4 6008 STR r0,[r1,#0]
0000f6 e01c B |L1.306|
|L1.248|
;;;50 case('А'):USART_WR_String("Hello world\r\n");break;
0000f8 a019 ADR r0,|L1.352|
0000fa f7fffffe BL USART_WR_String
0000fe e018 B |L1.306|
|L1.256|
;;;51 case('Б'):USART_WR_String("Red led on\r\n");Led_Red_On;break;
000100 a01b ADR r0,|L1.368|
000102 f7fffffe BL USART_WR_String
000106 2002 MOVS r0,#2
000108 4913 LDR r1,|L1.344|
00010a 6008 STR r0,[r1,#0]
00010c e011 B |L1.306|
|L1.270|
;;;52 case('В'):USART_WR_String("Green led on\r\n");Led_Green_On;break;
00010e a01c ADR r0,|L1.384|
000110 f7fffffe BL USART_WR_String
000114 2001 MOVS r0,#1
000116 4910 LDR r1,|L1.344|
000118 6008 STR r0,[r1,#0]
00011a e00a B |L1.306|
|L1.284|
;;;53 case('Г'):USART_WR_String("all led off\r\n");Led_Red_Off;Led_Green_Off;break;
00011c a01c ADR r0,|L1.400|
00011e f7fffffe BL USART_WR_String
000122 f44f3000 MOV r0,#0x20000
000126 490c LDR r1,|L1.344|
000128 6008 STR r0,[r1,#0]
00012a 1040 ASRS r0,r0,#1
00012c 6008 STR r0,[r1,#0]
00012e e000 B |L1.306|
|L1.304|
;;;54 default: break;
000130 bf00 NOP
|L1.306|
000132 bf00 NOP ;46
;;;55 }
;;;56 UsartBuf =0;
000134 2000 MOVS r0,#0
000136 4904 LDR r1,|L1.328|
000138 7008 STRB r0,[r1,#0]
;;;57 Delay_mS(10);
00013a 200a MOVS r0,#0xa
00013c f7fffffe BL Delay_mS
|L1.320|
000140 e7a9 B |L1.150|
;;;58 } |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 21.01.2015 в 09:24.
|
|
|
|
21.01.2015, 13:15
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Keil и русский язык
Сообщение от YURALL72
|
Переупаковка не прокатит. Передаватся будут 16 бит,и после девятого,дисплей будет воспринимать как следующий байт.
И нужно передавать старшим битом вперёд,это сначала будут идти нули.Можно конечно сдвинуть
влево,но какой-же это аппаратный spi получится?Гемор и трата времени.
|
Неужели? На самом деле гемор в понимании. А так, это самый настоящий хардварный SPI 9бит(18бит). Скорость выдачи данных 100% от максимально возможного. При чтении SD, пока принимается слово, предыдущие данные уходят на дисплей, всё параллельно.
16 бит уходит через SPI на максимальной скорости за 32 такта. За 32 такта можно и сдвинуть данные, и установить/сбросить нужные биты.
Но я не настаиваю. Выбор есть.
1. Ногодрыг
2. Ногодрыг+SPI
3. SPI в режиме 16бит с отсечением лишнего поднятием CS после каждого байта
4. USART как SPI в режиме 9бит с реверсом бит, на М3 реверс бит занимает две команды, что достаточно быстро
5. SPI в режиме 16бит с переупаковкой на лету
Последний раз редактировалось STM32F0; 21.01.2015 в 13:46.
|
|
|
|
21.01.2015, 15:18
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Keil и русский язык
Сообщение от STM32F0
|
5. SPI в режиме 16бит с переупаковкой на лету
|
Если можно,по подробнее.
|
|
|
|
21.01.2015, 17:10
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Keil и русский язык
Всё просто. Берём uint32_t переменную, формируем 2х9бит=18бит, в DR заталкиваем сдинутое на 2 разряда вправо значение. 16 бит ушло, осталось 2бита от 18-ти. Сдвигаем переменную влево и снова формируем 18бит. Теперь в переменной 20бит, 2 бита остатка+18бит новых данных. В DR заталкиваем сдинутое на 4 разряда вправо значение. И т.д..
Т.е., пока SPI выплёвывает 16бит готовится новая порция данных.
|
|
|
Сказали "Спасибо" STM32F0
|
|
|
21.01.2015, 17:21
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Keil и русский язык
Спасибо.А как быть если нужно только 1 байт передать,или если кол-во байт нечётное и последний байт нечем заполнить.В принципе дисплей получит не полный пакет.16-9=7 бит,а ему нужно 9.Вот как он себя поведёт при этом?Попробую найти в даташите.
|
|
|
|
21.01.2015, 17:39
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Keil и русский язык
YURALL72, STM32F0 еще одну фишку не озвучил - CS дергать без надобности .
И лучше выплевывать весь видеобуфер сразу...
YURALL72,что на счет этого - https://kazus.ru/forums/showpost.php...0&postcount=26
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
21.01.2015, 17:45
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Keil и русский язык
Я любитель (писал выше),ток начал осваивать stm32.Со spi 9-бит разобраться не могу а Вы - видеобуфер)))).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:11.
|
|