huy666 发表于 2015-9-16 16:52:23

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

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

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


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

官方资料真不好找,
官方资料真不好找,
重要的事情说三遍。

huy666 发表于 2015-9-16 16:54:03

点击添加图片,附件按钮没有反应。

huy666 发表于 2015-9-17 12:55:30

还是上传不了图片,点图片和附件按钮没有反应(高级模式),帖子最下边的图片和地址让填写链接地址,不知怎么操作。

firefox浏览器 40.0.3

山外メ雲ジ 发表于 2015-9-17 13:07:03

kl26 是2个pit ,你楼主贴给的帖子,讲的是k系列,不是kl系列

huy666 发表于 2015-9-17 13:11:09

山外メ雲ジ 发表于 2015-9-17 13:07
kl26 是2个pit ,你楼主贴给的帖子,讲的是k系列,不是kl系列

Reference Manual 是 KL的 后面的例程有 2,3。

FSL_TICS_ZJJ 发表于 2015-9-17 15:51:51

楼主你好!
不知道楼主看的是否是KLK26对应的RM。
其实KL26有两个PIT,具体在KL26的RM手册,第三章可以看到。其实从PIT的寄存器组也可以看出。
楼主一楼给的链接是K系列的,K系列的PIT通道比较多,KL系列的PIT通道相对较少,这个要看具体是什么kinetis系列的。
另外,关于kinetis的资料,还是很好找的。
比如,关于KL26的:
手册:http://www.freescale.com/zh-Hans/products/arm-processors/kinetis-cortex-m/l-series/kinetis-kl2x-48-mhz-usb-connectivity-ultra-low-power-mcus:KL2x
开发板以及软件:http://www.freescale.com/zh-Hans/products/arm-processors/kinetis-cortex-m/l-series/freescale-freedom-development-platform-for-kinetis-kl16-and-kl26-mcus-up-to-128-kb-flash:FRDM-KL26Z?uc=true&lang_cd=zh-Hans
下载中可以找到所有关于FRDM-KL26的资料,包括代码,原理图等。
楼主如果还有资料方面的问题,可以直接发帖,我会直接发给你。

huy666 发表于 2015-9-17 17:23:30

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 |= (PORT_PCR_MUX(3));      // PTC6=CMP0-IN0 (ALT3)J1-PIN9,
    PORTC->PCR |= (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("\n****ISR entered*****\r\n\n");
    //printf("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 \n");
      //printf("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 \n");
      //printf("CMP0_SCR   = %#02X ",    (CMP0_SCR ));
    }
    return;
}

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

FSL_TICS_ZJJ 发表于 2015-9-18 12:51:15

huy666 发表于 2015-9-17 17:23
多谢!

请指点下 kl26 的 rm怎么找?


寻找RM,到官网找到你相应的芯片,在芯片的文档页有下载。
具体找芯片,你可以从这个页面进入找:http://www.freescale.com/zh-Hans/products/arm-processors/kinetis-cortex-m:KINETIS?lang_cd=zh-Hans
关于中断未进入,你没有使能中断向量号,怎么能进入呢?
enable_irq(16),没有必要一定用INT_CMP0-16,可能你没有定义这个。
还有你有enable_irq函数吗?这个在core_cm0plus.h中有NVIC_EnableIRQ, 就是对应的函数。
使能总中断的函数,一般可以在core_cmFunc.h中找到,你看看你有没有这两个头文件。

huy666 发表于 2015-9-21 11:07:03

初始化时增加了NVIC_EnableIRQ(CMP0_IRQn); 正常了。

FSL_TICS_ZJJ 发表于 2015-9-21 15:54:10

huy666 发表于 2015-9-21 11:07
初始化时增加了NVIC_EnableIRQ(CMP0_IRQn); 正常了。

要想进入中断,一定要使能对应的中断号。
页: [1]
查看完整版本: 刚接触飞思卡尔KL26,看资料被整蒙了。PIT有几个通道?