工具/软件:Code Composer Studio
我遇到了一个异常问题、在我初始化 UC 的时钟频率后、它将随机进入 ISRFault 环路或 NmiSR。 我正在使用多个程序来实现 e-ink 普及显示、但我在为微控制器执行初始化后无法测试任何原因、我收到此故障中断、无法理解原因。
#include "conf_EPD.h" /*首字母缩略词术语表 * gu =全局更新 * pu =部分更新 * LUT =查找表、用于定义驱动波形参数的数组 * OTP =一次性编程、 LUT 在驱动器 IC 中预编程 */ /** *\brief 定义 EPD 的计时控制器类型和大小 *\note *- etc=外部计时控制器(驱动器 IC) *- ITC=内部时序控制器*/ // ETC #define SZ_etC_144 0 // J7开关0000 001X #define SZ_etC_190 1 // J7开关0000 000x #define SZ_etC_200 2 // J7开关0000 001X #define SZ_etC_260 3 //J7开关0000_#define SZ_7 开关#define JITC/J215/J7 开关#define 000x #define Z_015/ JITC/JITC_000x #define 000x 开关#define J271/J7开关 1010 000x #define SZ_ITC_287 6 //J7开关0101 010x #define SZ_ITC_420 7 //J7开关0101 010x /** *\brief 用胶片材料定义 EPD 驱动器 *\note *- BW =黑白颜色、Aurora 胶片 *- BWR=黑色、白色和红色、 光谱红胶片 *- a=Aurora Ma (V230) *- b=Aurora MB (V231)*/ #define DR_etC_BWA 0 #define dr_etc_bwb 1 #define DR_ITC_BWB 2 /** *\brief 根据连接的显示模型配置以下两个定义*/ #define USE_EPD_Type DR_etC_BWB #define USE_EPD_SIZE SZ_etC_190 #if (USE_EPD_Type=DR_ETC_BWA || USE_EPD_Type=DR_etC_BWB) #if (use_epd_Type=dr_etc_bwa) #define EPD_Type DR_ETC_G2_Aurora 其他 #define EPD_Type DR_ETC_G2_Aurora MB #endif #if (use_epd_size==SZ_etc_144) extern unsigned char const Image_etc_144_01[]; extern unsigned char const Image_etc_144_02[]; #define EPD_SIZE EPD_144_BW #define Image1 (uint8_t *)&Image_etc_144_01 #define Image2 (uint8_t *)&Image_etc_144_02 #elif (use_epd_size==SZ_etc_190) extern unsigned char const Image_etc_190_01[]; extern unsigned char const Image_etc_190_02[]; #define EPD_SIZE EPD_190_BW #define Image1 (uint8_t *)&Image_etc_190_01 #define Image2 (uint8_t *)&Image_etc_190_02 #elif (use_epd_size==SZ_etc_200) extern unsigned char const Image_etc_200_01[]; extern unsigned char const Image_etc_200_02[]; #define EPD_SIZE EPD_200_BW #define Image1 (uint8_t *)&Image_etc_200_01 #define Image2 (uint8_t *)&Image_etc_200_02 #elif (use_epd_size==SZ_etc_260) extern unsigned char const Image_etc_260_01[]; extern unsigned char const Image_etc_260_02[]; #define EPD_SIZE EPD_260_BW #define Image1 (uint8_t *)&Image_etc_260_01 #define Image2 (uint8_t *)&Image_etc_260_02 #elif (use_epd_size==SZ_etc_271) extern unsigned char const Image_etc_271_01[]; extern unsigned char const Image_etc_271_02[]; #define EPD_SIZE EPD_271_BW #define Image1 (uint8_t *)&Image_etc_271_01 #define Image2 (uint8_t *)&Image_etc_271_02 #endif #elif (use_epd_Type=dr_itc_bwb) #if (USE_EPD_SIZE=SZ_ITC_215) extern unsigned char const Image_ITC_215_01[]; extern unsigned char const Image_ITC_215_02[]; #define EPD_Type DR_ITC_215_Aurora MB #define EPD_SIZE EPD_215_BW #define Image1 (uint8_t *)&Image_ITC_215_01 #define Image2 (uint8_t *)&Image_ITC_215_02 #elif (use_epd_size==SZ_ITC_287) extern unsigned char const Image_ITC_287_01[]; extern unsigned char const Image_ITC_287_02[]; #define EPD_Type DR_ITC_287_Aurora MB #define EPD_SIZE EPD_287_BW #define Image1 (uint8_t *)&Image_ITC_287_01 #define Image2 (uint8_t *)&Image_ITC_287_02 #elif (use_epd_size==SZ_ITC_420) extern unsigned char const Image_ITC_420_01[]; extern unsigned char const Image_ITC_420_02[]; #define EPD_Type DR_ITC_420_Aurora MB #define EPD_SIZE EPD_420_BW #define Image1 (uint8_t *)&Image_ITC_420_01 #define Image2 (uint8_t *)&Image_ITC_420_02 #endif #endif void main (void) { system_init(); EPD_DISPLAY_INIT(); SysTick 配置(); //EPD_DELAY_ms (1000); Set_AssignEPD_Drive (EPD_Type、EPD_SIZE、USE_Temperature_Sensor); ///EPD_DISPLAY_GU_FITH_POINTER (Image2、Image1、GU_Mode、true); _DELAY_CYCLES (200000); while (true) { EPD_DISPLAY_GU_FITH_POINTER (Image2、Image1、GU_Mode、true); EPD_DELAY_ms (5000); EPD_DISPLAY_GU_FITH_POINTER (Image1、Image2、GU_Mode、true); EPD_DELAY_ms (5000); } }
void system_init (void)
{
/*停止看门狗*/
MAP_WDT_A_HOLDTimer();
/*为 DCO 频率计算启用 FPU */
map_fpu_enableModule();
/*将 DCO 设置为48MHz (升级 Vcore)*/
MAP_PCM_setCoreVoltageLevel (PCM_VCORE1);
/*将 DCO 频率设置为非标准48MHz */
//map_CS_setDCOFrequency (48000000);
CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 48);
MAP_Interrupt_enableMaster();
//MAP_PCM_setCoreVoltageLevel (PCM_VCORE1);
//CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 48);
}
代码将在 DCO 频率初始化后随机进入故障中断函数。
谢谢。
安德烈