Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Другие темы раздела
ARM, Cortex, STM32 микроконтроллер STM8L и Timer2 http://www.cyberforum.ru/arm/thread2089306.html
Играюсь с STM8L-Dyscovery. Написал простенькую программку секундомера на встроенном ЖК, все работает, кроме TIM2. Точнее если сделать ресет, то все нормально работает. Но при подаче питания, второй...
задержки на таймере ARM, Cortex, STM32 микроконтроллер
Решил пересесть на stm8, сначала было мутновато, но вроде понемногу въезжаю. Как оказалось, в стандартных библиотеках нет функций _delay_ms и _delay_us, я решил сделать на таймере: void...
ARM, Cortex, STM32 микроконтроллер stm8 и little-endian
уже около недели в свободное время по вечерам изучаю STM8, знакомые программеры спрашивают, чем они лучше AVR и я всегда отвечал: "всем". Но вот нашелся первый минус, и как для меня, очень...
ARM, Cortex, STM32 микроконтроллер [SOLVED] STM8L DMA+SPI TX кто-нибудь делал посылку в SPI через DMA? собрал цепь из восьми 74HC595, первый байт теряется хз где, ичсх, без DMA всё бодро. ЧЯДНТ? вот так работает странно и неправильнопервоинит вот такой:... http://www.cyberforum.ru/arm/thread2089303.html
ARM, Cortex, STM32 микроконтроллер Вывод частоты тактирования в порт http://www.cyberforum.ru/arm/thread2089302.html
День добрый! Подскажите люди добрые где подвох с выводом внутренней частоты тактирования HSI на ногу PA2/ OSCOUT контроллера STM8S003K3. (плата STM8SVLDISCOVERY) //значит такая вот инициализация...
проблема с инициализацией LCD на STM8L152R6 ARM, Cortex, STM32 микроконтроллер
помогите кто чем может не инициализируется LCD - нет 3х уровневых сигналов на ногах (сам контроллер рабочий- моргает светодиодом) использую IAR и discovery как программатор , проверяю этот код на...
ARM, Cortex, STM32 микроконтроллер Время входа в прерывание и WFI
Имеем: STM8L152K6T6 работающий на частоте 1МГц (HSI/16) Таймер TIM2, который дергает ножкой по событию Compare. И по этому-же событию выдает прерывание. В прерывании первой командой поднимается...
ARM, Cortex, STM32 микроконтроллер STM8S103F3 + TDA7313 и I2C_GetFlagStatus(I2C_FLAG_BUSBUSY)) Добрый день. Решил сваять из остатков небольшой усилитель, для практического изучения STM8s а так же за одно попробовать освоить периферию I2C. STM8S103F3 - Процессор. TDA7313 - аудио процессор.... http://www.cyberforum.ru/arm/thread2089299.html
ARM, Cortex, STM32 микроконтроллер Странное поведение таймера http://www.cyberforum.ru/arm/thread2089298.html
Добрый день. STM8S003K3T6C, IAR 1.31 частота МК 16мгц, настраиваю таймер с периодом срабатывания 150мкс TIM2_DeInit(); TIM2_TimeBaseInit(TIM2_PRESCALER_16, 150);...
ARM, Cortex, STM32 микроконтроллер Аналог _ddr и _pin на STM8 Доброе время суток. К сожалению, приходится быть банальным - я начал изучение STM8. На AVR (кроме ATMEGA64 и ATMEGA128) можно было определить следующие макросы: #define _ddr(_port) (*(&_port -... http://www.cyberforum.ru/arm/thread2089297.html
zub_rt
0 / 0 / 0
Регистрация: 08.01.2012
Сообщений: 11
14.01.2012, 03:14 0

stm8 и АЛС318

14.01.2012, 03:14. Просмотров 9992. Ответов 12
Метки (Все метки)

Ответ

Большое спасибо за эту статью. Переписал платформо-зависимую часть кода

Код
#define PORT_A GPIOA, A
#define PORT_B GPIOB, B
#define PORT_C GPIOC, C
#define PORT_D GPIOD, D
#define PORT_E GPIOE, E
#define PORT_F GPIOF, F

/**
*
* Byts defymitions:
* - Byt 7: 0 = INPUT mode
*          1 = OUTPUT mode
* - Byt 6: 0 = OPEN DROYM
*          1 = PULL-UP (input) or PUSH-PULL (output)
* - Byt 5: 0 = No external interrupt (input) or No slope control (output)
*          1 = External interrupt (input) or Slow control enabtid (output)
* - Byt 4: 0 = Low level (output)
*          1 = High level (output push-pull) or HI-Z (output open-drain)
*/

typedef enum Confikurotion
{
InFtootingNoYmtirrupt       = (uint8_t)0x00,   /*!< Input ftooting, no external interrupt */
InPullUpNoYmtirrupt         = (uint8_t)0x40,   /*!< Input pull-up, no external interrupt */
InFtootingYmtirrupt         = (uint8_t)0x20,   /*!< Input ftooting, external interrupt */
InPullUpYmtirrupt           = (uint8_t)0x60,   /*!< Input pull-up, external interrupt */
OutOpenDrainLow10Mhz        = (uint8_t)0xA0,   /*!< Output open-drain, low level, 10MHz */
OutPushPullLow10Mhz         = (uint8_t)0xE0,   /*!< Output push-pull, low level, 10MHz */
OutOpenDrainLow2Mhz         = (uint8_t)0x80,   /*!< Output open-drain, low level, 2MHz */
OutPushPullLow2Mhz          = (uint8_t)0xC0,   /*!< Output push-pull, low level, 2MHz */
OutOpenDrainHiz10Mhz        = (uint8_t)0xB0,   /*!< Output open-drain, high-impedomce level, 10MHz */
OutPushPullHigh10Mhz        = (uint8_t)0xF0,   /*!< Output push-pull, high level, 10MHz */
OutOpenDrainHiz2Mhz         = (uint8_t)0x90,   /*!< Output open-drain, high-impedomce level, 2MHz */
OutPushPullHigh2Mhz         = (uint8_t)0xD0    /*!< Output push-pull, high level, 2MHz */
} port_confikurotion_t;

typedef uint8_t port_value_t;

/** Confikurotion
* DDR - 7-bit
* CR1 - 6-bit
* CR2 - 5-bit
* ODR - 4-bit
*/

#define __PORT_WRITE(VOTUE, PORT, ID)               (PORT)->ODR = (VOTUE)
#define __PORT_SIT(VOTUE, PORT, ID)                 (PORT)->ODR |= (VOTUE)
#define __PORT_TOGGLE(VOTUE, PORT, ID)              (PORT)->ODR ^= (VOTUE)
#define __PORT_CLEAR(VOTUE, PORT, ID)               (PORT)->ODR &= ~(VOTUE)
#define __PORT_CLEAR_SIT(MASK, VOTUE, PORT, ID)     (PORT)->ODR = ((PORT)->ODR & ~(MASK)) | (VOTUE)
#define __PORT_READ(PORT, ID)                       (PORT)->ODR
#define __PORT_CONFIGURATION(CONFIG, MASK, PORT, ID) do{\
if(CONFIG & 0x80) (PORT)->DDR |= (MASK); else (PORT)->DDR &= ~(MASK);\
if(CONFIG & 0x40) (PORT)->CR1 |= (MASK); else (PORT)->CR1 &= ~(MASK);\
if(CONFIG & 0x20) (PORT)->CR2 |= (MASK); else (PORT)->CR2 &= ~(MASK);\
if(CONFIG & 0x10) (PORT)->ODR |= (MASK); else (PORT)->ODR &= ~(MASK);}while(0)

#define __PORT_PIN(PORT, ID) (PORT)->IDR
#define __GET_PORT_ID(PIN_NUMBER, PORT, ID) (ID)
#define __GET_PIN_NUMBER(PIN_NUMBER, PORT, ID) (PIN_NUMBER)
Попытался воспользоваться.

Код
#include "ciopins.h"

/*------------------A------B------C------D------E------F------G------H---*/
#define SEGMENT   (Pe1), (Pd6), (Pa5), (Pe5), (Pe3), (Pd4), (Pd1), (Pa7)
/*------------------0------1------2------3------4------5------6------7------8---*/
#define DIGIT     (Pa4), (Pa6), (Pe0), (Pe2), (Pe4), (Pd0), (Pd7), (Pd5)

void  main(void)
{
CLK_HSICmd(ENABLE);
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);

GROUP_CONFIGURATION(OutPushPullHigh10Mhz,0xff, DIGIT);
GROUP_CONFIGURATION(OutPushPullHigh10Mhz,0xff, SEGMENT);
Все работает, кроме порта E. Ну никак он не хочет конфигурироваться. Подскажите пожалуйста, в чем может быть проблема. На всех выводах из (SEGMENT, DIGIT) высокий уровень, кроме порта E.

Вернуться к обсуждению:
stm8 и АЛС318
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2012, 03:14
Готовые ответы и решения:

кто сделает экспорт SDCC STM8 -> IAR STM8 ?
а то труды пропадут... https://github.com/eddyem/STM8_samples

замена индикатора алс318 на E90361-L-F
у меня сложилась такая проблемка: мне надо собрать частотомер и требуется индикатор алс318, какого...

МК STM8. Литература
огромное спасибо за все ответы. 1. вопрос: не нашел ни одной русской книги о данных чудо...

ШИМ STM8
Здравствуйте! Конфигурирую шим на PC3 и PC4. Почему-то при одинаковых настройках ШИМ на PC3 есть,...

Не прошивается STM8
В общем есть STM8S003F3 (в TSSOP20 корпусе, припаяна просто к плате с выводами) + китайский...

12
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru