本帖最后由 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。 里面的驱动和示例写的挺好,但是显得挺复杂,以前玩单片机没这么玩过。
官方资料真不好找,
官方资料真不好找,
重要的事情说三遍。
firefox浏览器 40.0.3
Reference Manual 是 KL的 后面的例程有 2,3。
不知道楼主看的是否是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的资料,包括代码,原理图等。
楼主如果还有资料方面的问题,可以直接发帖,我会直接发给你。
多谢!
请指点下 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();,函数,直接就能进中断。
一周热门 更多>