将 MC56F83000x EVK 与 CodeWarrior IDE 结合使用。我编写了简单的程序来从 PIT_0 超时调用 ISR。我使用图形配置工具 (GCT) 为优先级、超时和 ISR 链接设置 PIT_0 寄存器。但我认为 ISR 永远不会被调用,因为 pitCntr 永远不会递增。我看不出缺少什么。我可以感激地使用一些帮助。显示了 main() 和 appconfig.h。
主程序
#include "qs.h"
#include "sys.h"
#include "intc.h"
#include "gpio.h"
#include "cop.h"
#include "pit.h"
/* 板特定的 LED 和按钮 */
#include "../board.h"
无效 PIT0_ISR(无效);
静态 int pit0Cntr = 0;
void main(void)
{
UWord16 i;
/* 初始化 SYS、COP 和引脚 */
ioctl(SYS, SYS_INIT, NULL);
ioctl(COP, COP_INIT, NULL);
// 初始化 PIT
ioctl( PIT_0, PIT_INIT, NULL );
ioctl(GPIO_LED_R2, GPIO_SETAS_GPIO, LED_B2);
ioctl(GPIO_LED_R2, GPIO_SETAS_OUTPUT, LED_B2);
ioctl(GPIO_LED_R2, GPIO_SET_PIN, LED_B2);
/* 配置中断控制器 */
ioctl(INTC, INTC_INIT, NULL);
/* 在 SR 中启用中断 */
archEnableInt();
ioctl(PIT_0, PIT_COUNTER, PIT_ENABLE);
while(1)
{
/* 等一会儿 */
for(i=0; i<100; i++)
archDelay(0xffff);
/* 切换绿色 LED 指示灯 */
ioctl(GPIO_LED_B2, GPIO_TOGGLE_PIN, LED_B2);
/* 服务 COP 看门狗(如果启用)*/
ioctl(COP, COP_CLEAR_COUNTER, NULL);
}
}
#pragma中断
void PIT0_ISR(void)
{
ioctl( PIT_0, PIT_CLEAR_ROLLOVER_INT, NULL );
pit0Cntr++;
}
#pragma中断
/**************************************************** *********************************
*
* 文件名:appconfig.h
*
* 描述:应用程序静态配置文件
* (初始值,中断向量)
*
********************************************* ***********************************/
#ifndef __APPCONFIG_H
#define __APPCONFIG_H
/*.*************************************************** **************************
*
* 图形配置工具生成的文件,2022 年 9 月 11 日,22:22:47,星期日
*
** ****************************************************** ****************************/
#define MC56F83789
#define EXTCLK 8000000L
#define EXTAL 8000000L
#define APPCFG_DFLTS_OMITTED 1
#define APPCFG_GCT_VERSION 0x0207000dL
/*。
OCCS 配置
------------------------------------------
启用内部 200 kHz振荡器:无
掉电晶体振荡器:无
核心频率:50 MHz
VCO 频率:200 MHz
失锁中断 0:禁用
失锁中断 1:禁用
参考时钟丢失中断:禁用
.*/
#define OCCS_CTRL_INIT 0x0085U
#define OCCS_DIVBY_INIT 0x2018U
#定义 OCCS_OSCTL1_INIT 0x0220U
#定义 OCCS_OSCTL2_INIT 0x8100U
/*。
SYS 配置
------------------------------------------
SIM:省电模式:停止启用
等待启用
OnCE 处理器内核时钟:当内核 TAP 启用时启用
DMA 在运行和等待模式下启用:在所有功耗模式下启用 DMA 启用
外部复位输入过滤器:否,SIM - GPIO 上的时钟:启用 CLKO_0:无
SIM - GPIO 上的时钟:启用 CLKO_1:无
SIM - 外设时钟启用:GPIO G:否,GPIO F:是,GPIO E:是,GPIO是,GPIO C:是,GPIO B:否,GPIO A:否,TMR A0:否 TMR A1:否
,TMR A2:否,TMR A3:否,TMR B0:否,TMR B1:否,TMR B2:否,TMR B3:否,DAC_A:否 DAC_B
:否
SCI_0:否,SCI_1:否,SCI_2:否,QSPI_0:否,QSPI_1:否,IIC_0:否,IIC_1:否,FLEXCAN:否 CMP A:否,CMP
B :不,CMP C:不,CMP否,CYC ADC:否,CRC:否,PIT_0:否,PIT_1:否,PWMA_SM0:否,PWMA_SM1:否,PWMA_SM2:否,PWMA_SM3:否 PWMB_SM0:否,PWMB_SM1:否,PWMB_SM2:否,PWMB_SM3:否
, ROM:否,SIM - 停止时启用的模块:GPIO G:否
SIM - 停止时启用的模块:GPIO F:否,GPIO E:否,GPIO否,GPIO C:否,GPIO B:否,GPIO A:否
TMR A0:否,TMR A1:否,TMR A2:否,TMR A3:否,TMR B0:否,TMR B1:否,TMR B2:否,TMR B3:否,DAC_A:否 DAC_B
:否
SCI_0:否,SCI_1:否,SCI_2:否,QSPI_0:否,QSPI_1:否,IIC_0:否,IIC_1:否,FLEXCAN:否 CMP A:否,CMP
B :不,CMP C:不,CMP否,CYC ADC:否,CRC:否,PIT_0:否,PIT_1:否,PWMA_SM0:否,PWMA_SM1:否,PWMA_SM2:否,PWMA_SM3:否 PWMB_SM0:否,PWMB_SM1:否,PWMB_SM2:否,PWMBSM3:
无
ROM :无,USB:无,IPS 和 GPSxx 保护:寄存器不受保护
PCE、SD 和 PCR 保护:寄存器不受保护
GPIO 端口保护Registers not protected
Protec
tion of PWRMODE: Registers not protected
GPIO Peripheral select registers (GPSn): ANA0/CMPA3
USB_SOFOUT
ANB1/CMPB_IN0
CMPD_O
EXTAL
XB_IN2
TA0
TA1
XB_IN7
TA2
SS0_B
MISO0
SCLK0
MOSI0
CANTX
CANRX
TA3
SDA0
SCL0
RXD2
TXD2
XB_OUT11
PWMA_0B
PWMA_0A
PWMA_1B
PWMA_1A
PWMA_2B
PWMA_2A
PWMA_3B
PWMA_3A
PWMB_2B
PWMB_2A
XB_IN6
CLKO_1
MISO1
SDA1
PWMA_FAULT6
RXD1
PWMA_3X
SS1_B
RXD0
XB_OUT11
XB_OUT10
TXD0
MISO1
MOSI1
SCLK1
RXD0
PWM1B
PWM1A
PWM0B PWM0A
PWM3B
PWM3A
PWMA_FAULT4
PWMA_FAULT5
PWMB_0X
PWMB_1X
PWMB_2X TB3内部外设选择寄存器 0 (IPS0): GPIO C3
GPIO C4IO GPIO C6/G8 GPIO F2 GPIO C13 / G9 F0/G6 GPIO F7/G11 FAULT0 输入引脚 (GPIO E8) FAULT1 输入引脚 (GPIO E9) FAULT2 输入引脚 (GPIO G4) FAULT3 输入引脚 (GPIO G5) FAULT0 输入引脚 (GPIO F14)