ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
663374 Топик полностью
=L.A.= (27.03.2016 19:16, просмотров: 200) ответил Звероящер на Негде, ибо по дефолту вся периферия клокается.
Доверяешь установкам по умолчанию? Дотошные коллеги нашли косяк в ИАРе И здесь я столкнулся с ошибкой в среде программирования. Напомню, я использую IAR Embedded Workbench for STMicroelectronics STM8, версию 1.20. В заголовочном файле iostm8s105s6.h, который я использую, есть такое описание регистра CLK_CSSR: /* Clock security system register */ #ifdef __IAR_SYSTEMS_ICC__ typedef struct { unsigned char CSSEN : 1; unsigned char AUX : 1; unsigned char CSSD : 1; unsigned char CSSDIE : 1; } __BITS_CLK_CSSR; #endif __IO_REG8_BIT(CLK_CSSR, 0x50C8, __READ_WRITE, __BITS_CLK_CSSR); Смотрим в Reference manual на странице 77 описание этого регистра и удивляемся: биты CSSD и CSSDIE перепутаны местами! Исправим содержимое этого файла. /* Clock security system register */ #ifdef __IAR_SYSTEMS_ICC__ typedef struct { unsigned char CSSEN : 1; unsigned char AUX : 1; unsigned char CSSDIE : 1; unsigned char CSSD : 1; } __BITS_CLK_CSSR; #endif __IO_REG8_BIT(CLK_CSSR, 0x50C8, __READ_WRITE, __BITS_CLK_CSSR); И исправим маски чуть ниже. #define MASK_CLK_CSSR_CSSDIE 0x04 #define MASK_CLK_CSSR_CSSD 0x08 В общем для всего семейства хидере iostm8.h эта ошибка присутствует тоже. В хидерах для остальных процессоров я не смотрел, но подозреваю, что там присутствует такая же ошибка.