刚接触飞思卡尔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。 里面的驱动和示例写的挺好,但是显得挺复杂,以前玩单片机没这么玩过。

官方资料真不好找,
官方资料真不好找,
重要的事情说三遍。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
huy666
1楼-- · 2020-02-11 14:14
点击添加图片,附件按钮没有反应。
huy666
2楼-- · 2020-02-11 15:56
还是上传不了图片,点图片和附件按钮没有反应(高级模式),帖子最下边的图片和地址让填写链接地址,不知怎么操作。

firefox浏览器 40.0.3

山外メ雲ジ
3楼-- · 2020-02-11 21:42
 精彩回答 2  元偷偷看……
huy666
4楼-- · 2020-02-12 00:59
山外メ雲ジ 发表于 2015-9-17 13:07
kl26 是2个pit ,你楼主贴给的帖子,讲的是k系列,不是kl系列

Reference Manual 是 KL的 后面的例程有 2,3。
FSL_TICS_ZJJ
5楼-- · 2020-02-12 02:14
楼主你好!
不知道楼主看的是否是KLK26对应的RM。
其实KL26有两个PIT,具体在KL26的RM手册,第三章可以看到。其实从PIT的寄存器组也可以看出。
楼主一楼给的链接是K系列的,K系列的PIT通道比较多,KL系列的PIT通道相对较少,这个要看具体是什么kinetis系列的。
另外,关于kinetis的资料,还是很好找的。
比如,关于KL26的:
手册:http://www.freescale.com/zh-Hans ... low-power-mcus:KL2x
开发板以及软件:http://www.freescale.com/zh-Hans ... amp;lang_cd=zh-Hans
下载中可以找到所有关于FRDM-KL26的资料,包括代码,原理图等。
楼主如果还有资料方面的问题,可以直接发帖,我会直接发给你。
huy666
6楼-- · 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();,函数,直接就能进中断。

一周热门 更多>