Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 23.11.2013, 22:51  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Видел, я не гуру в SPL, просто за пару минут общения с ними, мне показалось, что ремить неиспользуемые h-файлы нет никакого смысла, ну и пусть висят все открытые. Или всё таки есть?
С STM8S такого нет, там по чуть по другому, но работает же!
В смысле, чтобы не плодить сущности и погрязнуть в унылом однообразии.
Реклама:

Последний раз редактировалось nahimovv; 23.11.2013 в 22:54.
nahimovv вне форума  
Непрочитано 23.11.2013, 22:53  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: FAQ по STM8

nahimovv, Да, я ж писал что лишнее .
Счас вытру.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 23.11.2013, 22:58  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Понял. И весь мой надоедливый трёп заодно, чтобы не путалось.
nahimovv вне форума  
Непрочитано 23.11.2013, 23:00  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: FAQ по STM8

dosikus спасибо получилось, пробовал на STM8S003F3, может когда ни будь пригодится. А почему некошерно использовать SPL из-за глючности?
oleg110592 вне форума  
Непрочитано 23.11.2013, 23:07  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Да пусть будет , у кого нибудь один хрен подобные вопросы будут.

Сообщение от oleg110592 Посмотреть сообщение
А почему некошерно использовать SPL из-за глючности?
Гы ...
Иниты через структуры это меньшее из возможных зол . Это может и не так гадко для STM32 , для STM8 это полный п.
Ну и остальные "прелести" ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 23.11.2013, 23:08  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от oleg110592 Посмотреть сообщение
А почему некошерно использовать SPL из-за глючности?
Не только, из-за своей избыточности, тормознутости и ограниченности возможностей.
nahimovv вне форума  
Непрочитано 23.11.2013, 23:10  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию 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.
dosikus вне форума  
Непрочитано 23.11.2013, 23:20  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: FAQ по STM8

понятно SPL для ленивых - получаем избыточный код и все возможности камешка не охватывает
oleg110592 вне форума  
Непрочитано 23.11.2013, 23:24  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: FAQ по STM8

oleg110592, И умножаем на глюки компилятора ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 23.11.2013, 23:25  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от oleg110592 Посмотреть сообщение
получилось, пробовал на STM8S003F3
Там есть ещё один вариант для одарённых ленью, но озвучивать его я не буду, а то ut1wpr ещё заругает.
nahimovv вне форума  
 

Закладки

Метки
arm, cortex, stm32, stm8
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


Часовой пояс GMT +4, время: 18:36.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot