00xiaodong 发表于 2015-5-6 15:21:30

stm8 STVD+Cosmic中断向量表

各位大大,我在调试stm8s105的时候,如何在中断向量表中设置自己的中断?我做的是一个旋转编码按键,PC4位中断输入,external_Interrupt应该放到什么位置?
我看别人的程序:TIM4对应/*irq23*/,TLI对应/*irq0*/。

typedef void @far (*interrupt_handler_t)(void);

struct interrupt_vector {
        unsigned char interrupt_instruction;
        interrupt_handler_t interrupt_handler;
};

@far @interrupt void NonHandledInterrupt (void)
{
        /* in order to detect unexpected events during development,
           it is recommended to set a breakpoint on the following instruction
        */
        return;
}

extern void _stext();   /* startup routine */

struct interrupt_vector const _vectab[] = {
        {0x82, (interrupt_handler_t)_stext}, /* reset */
        {0x82, NonHandledInterrupt}, /* trap*/
        {0x82, NonHandledInterrupt}, /* irq0*/
        {0x82, NonHandledInterrupt}, /* irq1*/
        {0x82, NonHandledInterrupt}, /* irq2*/
        {0x82, NonHandledInterrupt}, /* irq3*/
        {0x82, NonHandledInterrupt}, /* irq4*/
        {0x82, NonHandledInterrupt}, /* irq5*/
        {0x82, NonHandledInterrupt}, /* irq6*/
        {0x82, NonHandledInterrupt}, /* irq7*/
        {0x82, NonHandledInterrupt}, /* irq8*/
        {0x82, NonHandledInterrupt}, /* irq9*/
        {0x82, NonHandledInterrupt}, /* irq10 */
        {0x82, NonHandledInterrupt}, /* irq11 */
        {0x82, NonHandledInterrupt}, /* irq12 */
        {0x82, NonHandledInterrupt}, /* irq13 */
        {0x82, NonHandledInterrupt}, /* irq14 */
        {0x82, NonHandledInterrupt}, /* irq15 */
        {0x82, NonHandledInterrupt}, /* irq16 */
        {0x82, NonHandledInterrupt}, /* irq17 */
        {0x82, NonHandledInterrupt}, /* irq18 */
        {0x82, NonHandledInterrupt}, /* irq19 */
        {0x82, NonHandledInterrupt}, /* irq20 */
        {0x82, NonHandledInterrupt}, /* irq21 */
        {0x82, NonHandledInterrupt}, /* irq22 */
        {0x82, NonHandledInterrupt}, /* irq23 */
        {0x82, NonHandledInterrupt}, /* irq24 */
        {0x82, NonHandledInterrupt}, /* irq25 */
        {0x82, NonHandledInterrupt}, /* irq26 */
        {0x82, NonHandledInterrupt}, /* irq27 */
        {0x82, NonHandledInterrupt}, /* irq28 */
        {0x82, NonHandledInterrupt}, /* irq29 */
};


00xiaodong 发表于 2015-5-6 18:04:26

哈哈,我又自问自答了,个人觉得/*irq x */应该就是手册10.8中断映射里的中断向量号,应该能对应上0到24,剩下的应该是保留的吧?有知道的告诉我一下。

沐紫 发表于 2015-5-8 17:10:09

帮顶
页: [1]
查看完整版本: stm8 STVD+Cosmic中断向量表