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 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘