a6930559 2013-11-12 09:19
浏览 1083

at91sam7s64对外部时钟计数时计数值始终为0

at91sam7s64的TC有5个内部时钟源和3个外部时钟可以选择,并且在时钟上升沿计数器加1,现在选择TC1对外部信号计数,外部信号连接到PA26,将PA26复用到外设B即TIOA2,然后选择其作为时钟,且这个引脚是有高低电平变化的,配置的寄存器如下:

*AT91C_PIOA_PDR = 1<<26 ; //PA26禁止IO 使能外设

*AT91C_PIOA_BSR = 1<<26 ; //PA26分配给外设B即TIOA2 PA15分配给外设B即TIOA1

*AT91C_PMC_PCER = 1<<AT91C_ID_PIOA; //使能IO控制器时钟 需要吗? P204说明

*AT91C_TCB_BMR = AT91C_TCB_TC1XC1S_TIOA2 ; //TC_BMR中设置XC1的时钟为TIOA2
*AT91C_PMC_PCER = 1<<AT91C_ID_TC1; //允许TC1口的时钟

*AT91C_TC1_CCR = AT91C_TC_CLKEN; //使能计数时钟

*AT91C_TC1_CMR = AT91C_TC_CLKS_XC1; //设置时钟为XC1
*AT91C_PIOA_ODR = 1<<26 ; //输出禁用
*AT91C_PIOA_PPUDR = 1<<26 ; //上拉电阻禁用 改为PUER的话是使能
*AT91C_TC1_CCR = 0x04; //计数器复位并启动时钟

然后读取*AT91C_TC1_CV的值始终为0,这是哪里不对了?还有就是把*AT91C_TC1_CMR = AT91C_TC_CLKS_XC1; 这句改为选择内部时钟是可以计数的,但是换成外部的XC1就不能,求大神指点

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用三极管设计一个单管共射放大电路
    • ¥20 fluent无法启动
    • ¥15 孟德尔随机化r语言运行问题
    • ¥15 pyinstaller编译的时候出现No module named 'imp'
    • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
    • ¥15 怎么把多于硬盘空间放到根目录下
    • ¥15 Matlab问题解答有两个问题
    • ¥15 LCD12864中文显示
    • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
    • ¥15 gsoap生成onvif框架