23.11.2013, 22:51
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Видел, я не гуру в SPL, просто за пару минут общения с ними, мне показалось, что ремить неиспользуемые h-файлы нет никакого смысла, ну и пусть висят все открытые. Или всё таки есть?
С STM8S такого нет, там по чуть по другому, но работает же!
В смысле, чтобы не плодить сущности и погрязнуть в унылом однообразии.
Последний раз редактировалось nahimovv; 23.11.2013 в 22:54.
|
|
|
|
23.11.2013, 22:53
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
nahimovv, Да, я ж писал что лишнее .
Счас вытру.
__________________
Осторожно , злой кот
|
|
|
|
23.11.2013, 22:58
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Понял. И весь мой надоедливый трёп заодно, чтобы не путалось.
|
|
|
|
23.11.2013, 23:00
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: FAQ по STM8
dosikus спасибо получилось, пробовал на STM8S003F3, может когда ни будь пригодится. А почему некошерно использовать SPL из-за глючности?
|
|
|
|
23.11.2013, 23:07
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Да пусть будет , у кого нибудь один хрен подобные вопросы будут.
Сообщение от oleg110592
|
А почему некошерно использовать SPL из-за глючности?
|
Гы ...
Иниты через структуры это меньшее из возможных зол . Это может и не так гадко для STM32 , для STM8 это полный п.
Ну и остальные "прелести" ...
__________________
Осторожно , злой кот
|
|
|
|
23.11.2013, 23:08
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
А почему некошерно использовать SPL из-за глючности?
|
Не только, из-за своей избыточности, тормознутости и ограниченности возможностей.
|
|
|
|
23.11.2013, 23:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
может когда ни будь пригодится.
|
Сплюнь три раза . Не дай бог скатится до SPL ...
Красочный пример :
Вроде бы безобидное :
Код:
|
GPIO_Init(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3, GPIO_Mode_Out_PP_Low_Fast); |
Разворачивается :
Код:
|
\ In section .near_func.text, align 1
45 void main(void)
46 {
47
48 GPIO_Init(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3, GPIO_Mode_Out_PP_Low_Fast);
\ main:
\ 000000 35 E0 .... MOV S:?b0, #0xe0
\ 000004 A6 0F LD A, #0xf
\ 000006 AE 5000 LDW X, #0x5000
\ 000009 CD .... CALL L:GPIO_Init
49
50
51 /* Infinite loop */
52 while (1)
\ ??main_0:
\ 00000C 20 FE JRA L:??main_0 |
Код:
|
\ In section .near_func.text, align 1
130 void GPIO_Init(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)
131 {
\ GPIO_Init:
\ 000000 B7 .. LD S:?b1, A
132 /*----------------------*/
133 /* Check the parameters */
134 /*----------------------*/
135
136 assert_param(IS_GPIO_MODE(GPIO_Mode));
137 assert_param(IS_GPIO_PIN(GPIO_Pin));
138
139 /* Reset corresponding bit to GPIO_Pin in CR2 register */
140 GPIOx-›CR2 &= (uint8_t)(~(GPIO_Pin));
\ 000002 9093 LDW Y, X
\ 000004 72A9 0004 ADDW Y, #0x4
\ 000008 B6 .. LD A, S:?b1
\ 00000A 43 CPL A
\ 00000B 90F4 AND A, (Y)
\ 00000D 9093 LDW Y, X
\ 00000F 72A9 0004 ADDW Y, #0x4
\ 000013 90F7 LD (Y), A
141
142 /*-----------------------------*/
143 /* Input/Output mode selection */
144 /*-----------------------------*/
145
146 if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x80) != (uint8_t)0x00) /* Output mode */
\ 000015 B6 .. LD A, S:?b0
\ 000017 A4 80 AND A, #0x80
\ 000019 A1 00 CP A, #0x0
\ 00001B 27 27 JREQ L:??GPIO_Init_0
147 {
148 if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x10) != (uint8_t)0x00) /* High level */
\ 00001D B6 .. LD A, S:?b0
\ 00001F A4 10 AND A, #0x10
\ 000021 A1 00 CP A, #0x0
\ 000023 27 06 JREQ L:??GPIO_Init_1
149 {
150 GPIOx-›ODR |= GPIO_Pin;
\ 000025 B6 .. LD A, S:?b1
\ 000027 FA OR A, (X)
\ 000028 F7 LD (X), A
\ 000029 20 05 JRA L:??GPIO_Init_2
151 } else /* Low level */
152 {
153 GPIOx-›ODR &= (uint8_t)(~(GPIO_Pin));
\ ??GPIO_Init_1:
\ 00002B B6 .. LD A, S:?b1
\ 00002D 43 CPL A
\ 00002E F4 AND A, (X)
\ 00002F F7 LD (X), A
154 }
155 /* Set Output mode */
156 GPIOx-›DDR |= GPIO_Pin;
\ ??GPIO_Init_2:
\ 000030 9093 LDW Y, X
\ 000032 72A9 0002 ADDW Y, #0x2
\ 000036 B6 .. LD A, S:?b1
\ 000038 90FA OR A, (Y)
\ 00003A 9093 LDW Y, X
\ 00003C 72A9 0002 ADDW Y, #0x2
\ 000040 90F7 LD (Y), A
\ 000042 20 13 JRA L:??GPIO_Init_3
157 } else /* Input mode */
158 {
159 /* Set Input mode */
160 GPIOx-›DDR &= (uint8_t)(~(GPIO_Pin));
\ ??GPIO_Init_0:
\ 000044 9093 LDW Y, X
\ 000046 72A9 0002 ADDW Y, #0x2
\ 00004A B6 .. LD A, S:?b1
\ 00004C 43 CPL A
\ 00004D 90F4 AND A, (Y)
\ 00004F 9093 LDW Y, X
\ 000051 72A9 0002 ADDW Y, #0x2
\ 000055 90F7 LD (Y), A
161 }
162
163 /*------------------------------------------------------------------------*/
164 /* Pull-Up/Float (Input) or Push-Pull/Open-Drain (Output) modes selection */
165 /*------------------------------------------------------------------------*/
166
167 if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x40) != (uint8_t)0x00) /* Pull-Up or Push-Pull */
\ ??GPIO_Init_3:
\ 000057 B6 .. LD A, S:?b0
\ 000059 A4 40 AND A, #0x40
\ 00005B A1 00 CP A, #0x0
\ 00005D 27 14 JREQ L:??GPIO_Init_4
168 {
169 GPIOx-›CR1 |= GPIO_Pin;
\ 00005F 9093 LDW Y, X
\ 000061 72A9 0003 ADDW Y, #0x3
\ 000065 B6 .. LD A, S:?b1
\ 000067 90FA OR A, (Y)
\ 000069 9093 LDW Y, X
\ 00006B 72A9 0003 ADDW Y, #0x3
\ 00006F 90F7 LD (Y), A
\ 000071 20 13 JRA L:??GPIO_Init_5
170 } else /* Float or Open-Drain */
171 {
172 GPIOx-›CR1 &= (uint8_t)(~(GPIO_Pin));
\ ??GPIO_Init_4:
\ 000073 9093 LDW Y, X
\ 000075 72A9 0003 ADDW Y, #0x3
\ 000079 B6 .. LD A, S:?b1
\ 00007B 43 CPL A
\ 00007C 90F4 AND A, (Y)
\ 00007E 9093 LDW Y, X
\ 000080 72A9 0003 ADDW Y, #0x3
\ 000084 90F7 LD (Y), A
173 }
174
175 /*-----------------------------------------------------*/
176 /* Interrupt (Input) or Slope (Output) modes selection */
177 /*-----------------------------------------------------*/
178
179 if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x20) != (uint8_t)0x00) /* Interrupt or Slow slope */
\ ??GPIO_Init_5:
\ 000086 B6 .. LD A, S:?b0
\ 000088 A4 20 AND A, #0x20
\ 00008A A1 00 CP A, #0x0
\ 00008C 27 0F JREQ L:??GPIO_Init_6
180 {
181 GPIOx-›CR2 |= GPIO_Pin;
\ 00008E 9093 LDW Y, X
\ 000090 72A9 0004 ADDW Y, #0x4
\ 000094 B6 .. LD A, S:?b1
\ 000096 90FA OR A, (Y)
\ 000098 1C 0004 ADDW X, #0x4
\ 00009B F7 LD (X), A
\ 00009C 81 RET
182 } else /* No external interrupt or No slope control */
183 {
184 GPIOx-›CR2 &= (uint8_t)(~(GPIO_Pin));
\ ??GPIO_Init_6:
\ 00009D 9093 LDW Y, X
\ 00009F 72A9 0004 ADDW Y, #0x4
\ 0000A3 33 .. CPL S:?b1
\ 0000A5 B6 .. LD A, S:?b1
\ 0000A7 90F4 AND A, (Y)
\ 0000A9 1C 0004 ADDW X, #0x4
\ 0000AC F7 LD (X), A
185 }
186
187 }
\ 0000AD 81 RET |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 23.11.2013 в 23:21.
|
|
|
|
23.11.2013, 23:20
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: FAQ по STM8
понятно SPL для ленивых - получаем избыточный код и все возможности камешка не охватывает
|
|
|
|
23.11.2013, 23:24
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
oleg110592, И умножаем на глюки компилятора ...
__________________
Осторожно , злой кот
|
|
|
|
23.11.2013, 23:25
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
получилось, пробовал на STM8S003F3
|
Там есть ещё один вариант для одарённых ленью, но озвучивать его я не буду, а то ut1wpr ещё заругает.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:36.
|
|