刚接触飞思卡尔KL26,看资料被整蒙了。PIT有几个通道?

2020-02-11 10:14发布

本帖最后由 huy666 于 2015-9-16 16:52 编辑

Rev 3.3 4/2015 的Reference Manual。
前面说的,好像是2个通道。
后面例子居然有2,3通道,还有本论坛有个帖子
http://www.amobbs.com/forum.php? ... 8&highlight=pit
说的也是有4个通道。
有用过的说说,我还没上手。谢谢!


官网资料不好找,Reference Manual还是在本坛里的一个帖子里的表格里找到的下载地址。
例程下了个近300M的exe,解压居然近2.6G。 里面的驱动和示例写的挺好,但是显得挺复杂,以前玩单片机没这么玩过。

官方资料真不好找,
官方资料真不好找,
重要的事情说三遍。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
huy666
2020-02-12 05:52
FSL_TICS_ZJJ 发表于 2015-9-17 15:51
楼主你好!
不知道楼主看的是否是KLK26对应的RM。
其实KL26有两个PIT,具体在KL26的RM手册,第三章可以看到 ...

多谢!

请指点下 kl26 的 rm怎么找?

另 ,调了半天cmp,就是不进中断。 用的MDK5.15,代码如下:

void cmp_init ( void )
{
    //////////////////
    SIM->SCGC4    |= (SIM_SCGC4_CMP_MASK);        // Enable cmp
    //enable_irq(INT_CMP0-16);
    //PORTC->PCR[6] |= (PORT_PCR_MUX(3));        // PTC6=CMP0-IN0 (ALT3)  J1-PIN9,
    PORTC->PCR[7] |= (PORT_PCR_MUX(1));        // PTC7=CMP0-IN1 (ALT2)  J1-PIN11

    // Filter and digital
    //CMP0->CR0   = CMP_CR0_FILTER_CNT(3) |CMP_CR0_HYSTCTR(2); //filter and hysteresis
    CMP0->CR0 = 0;
    // no sample(continuous), no window, -, HS mode, no invert, COUTA(unfiltered), output pin enable, moduledisable
    //CMP0->CR1 = CMP_CR1_PMODE_MASK | CMP_CR1_COS_MASK | CMP_CR1_OPE_MASK; //0x16;
    CMP0->CR1 = 0x15;
    // Filter disabled
    CMP0->FPR = 0x00;   

    // Enable rising or falling edge interrupts, clear flags
    CMP0->SCR = CMP_SCR_IER_MASK |
                CMP_SCR_IEF_MASK |
                CMP_SCR_CFR_MASK |
                CMP_SCR_CFF_MASK;   //0x1E
   
    // 6-bit DAC enabled, output set to 1/2-scale, Vdd reference
    CMP0->DACCR = CMP_DACCR_DACEN_MASK | CMP_DACCR_VRSEL_MASK | CMP_DACCR_VOSEL(0x20);   //0xE0;

    //IN+ = CMP0_IN0, IN- = 6b DAC
    //CMP0->MUXCR = CMP_MUXCR_PSEL(0) | CMP_MUXCR_MSEL(7);   //IN+ = CMP0_IN0, IN- = CMP0_IN1
    CMP0->MUXCR = 0x0F;
    // enable CMP
    CMP0->CR1 |= CMP_CR1_OPE_MASK;
}

void CMP0_IRQHandler(void)
{
    //FPTB->PSOR = 0x00080000;           // set Port B 19 indicate wakeup

    printf(" [CMP0_ISR]****ISR entered***** ");
    //printf("[CMP0_ISR]CMP0_SCR   = %#02X ",    (CMP0_SCR ))  ;
    if (CMP0->SCR & CMP_SCR_CFR_MASK)
    {
        CMP0->SCR |= CMP_SCR_CFR_MASK;  
        printf(" CMP0_CFR set and is now clear ");
        //printf("[CMP0_ISR]CMP0_SCR   = %#02X ",    (CMP0_SCR ))  ;
    }
    if (CMP0->SCR & CMP_SCR_CFF_MASK)
    {
        CMP0->SCR |= CMP_SCR_CFF_MASK;  
        printf(" CMP0_CFF set and is now clear ");
        //printf("[CMP0_ISR]CMP0_SCR   = %#02X ",    (CMP0_SCR ))  ;
    }
    return;  
}

enable_irq(INT_CMP0-16);MDK不支持,
我调PIT时就没有用enable_irq();,函数,直接就能进中断。

一周热门 更多>