杰理AC690X---定时器中断时间配置(17)

废话不多说,直奔主题。请看代码:

定时器中断函数:

void timer1_interrupt() ///125uS中断一次
{
    ///os_time_dly(1000);//延时函数
    //timer_ctrl(timer1_hl,TIMER_CMD_SET_CNT,0,NULL);
    time1_test_flag++;
    if(time1_test_flag==8) ///假设中断时间是125微妙,那么加8次就等于1毫秒
    {
        time1_test_flag=0;
        TEST1_PORT_ON();
        //printf("SYS_CLK:%d",clock_get_sys_freq());
        //printf("1\r\n");

    }
    else
    {
        TEST1_PORT_OFF();
       // printf("2222222\r\n");
    }
    //printf("time1_test_flag:%d\r\n",time1_test_flag);
}

定时器初始化函数:

s32 time1_init(void)
{
	s32 ret;
    __timer_param   timer_parm;

	timer1_hl = timer_open(TIMER1,1);
	if(NULL == timer1_hl)
	{
		printf("timer_open err");
		ret = TIMER_DRV_OPEN_ERR;
		return ret;
	}
	timer_parm.work_mode  = TIMER_WORK_MODE_COUNTER;
	//timer_parm.tick_time  = 1000;//(1ms)
	ret = timer_init_api(timer1_hl,&timer_parm);
	if(ret != TIMER_NO_ERR)
	{
		printf("timer_init err = %x\n",ret);
		return ret;
	}

	ret = timer_start(timer1_hl);
	if(ret != TIMER_NO_ERR)
	{
		printf("timer_start err = %x\n",ret);
		return ret;
	}

	/// JL_TIMER1->CON = 0x0051;///4*2分频
	 JL_TIMER1->CON = 0x0001;
     //JL_TIMER1->CNT = 0;
     JL_TIMER1->PRD = 7500;///60000/60M == 0.001秒
                           ///7500/60M == 125us
	ret = timer_reg_isr_callback_fun(timer1_hl,4,timer1_interrupt);
	if(ret != TIMER_NO_ERR)
	{
		printf("timer_reg_isr_callback_fun err = %x\n",ret);
		return ret;
	}
	return ret;
}

定时器的时钟周期是60M

JL_TIMER1->PRD这个寄存器的赋值可影响定时器中断时间

计算方式请看代码的注释。

做好这些,然后你就会发现定时器再也不是1ms中断一次了,可以做到微妙级了。

下面是PWM输出的周期和占空比设置,原理大致类似:

void PWM2_init(u16 led_pwm_cnt)
{
    JL_IOMAP->CON1 &= ~(BIT(11)|BIT(12)|BIT(13));
    JL_IOMAP->CON1 |= BIT(12);

    JL_PORTC->DIR &= ~BIT(5);
    JL_PORTC->PU   |= BIT(5);
    JL_PORTC->PD   |= BIT(5);
    JL_PORTC->DIE  |= BIT(5);

    JL_TIMER2->CNT = 0;
    JL_TIMER2->PWM = led_pwm_cnt;//led_pwm_cnt/3600*100%==占空比为%
    JL_TIMER2->PRD = 3600;//周期频率 3600/60M == 60us
    JL_TIMER2->CON =BIT(0); //BIT(8)|BIT(0);
}

OK,以上请自行实测,多动手。Good Luck.

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: AC690X数据手册是一份详细介绍了AC690X系列芯片的技术参数和功能特性的重要参考文档。 首先,数据手册中包含了AC690X系列芯片的基本信息,如芯片型号、尺寸和引脚定义等。这些基本信息对于电路设计师来说非常重要,因为它们决定了芯片的使用和布局方式。 其次,数据手册还提供了AC690X系列芯片的主要功能特性,比如处器核心频率、内存容量和支持的通信接口等。这些特性对于开发者来说非常关键,因为它们决定了芯片的性能和应用场景。 此外,数据手册中还介绍了AC690X系列芯片的功耗和温度特性。这对于系统设计师来说非常有用,因为它们可以帮助他们评估芯片在不同工作条件下的性能表现和稳定性。 最后,数据手册中还包含了AC690X系列芯片的应用示例和开发指南。这些示例和指南可以帮助开发者更好地解和使用芯片,缩短产品开发周期和降低开发成本。 综上所述,AC690X数据手册是一份非常重要的参考文档,它提供了关于AC690X系列芯片的全面信息,对于电路设计师、开发者和系统设计师来说都具有重要的参考价值。 ### 回答2: AC690x是一款高性能的芯片组,主要用于智能音频设备。本文将重点介绍AC690x的数据手册。 AC690x数据手册是公司提供的一份详尽的技术文档,用于向开发者和设计师介绍AC690x的功能、规格、接口、操作指南等相关信息。 首先,数据手册提供了AC690x芯片的详细规格参数,包括处器核心频率、内存大小、电源要求等,这些参数对于设计师在设计设备时非常重要,可以作为参考依据。 其次,数据手册详细介绍了AC690x的功能特点。AC690x芯片具备先进的音频处能力,支持多种音频格式,包括MP3、AAC、FLAC等。同时,它还支持低功耗蓝牙技术,可以与其他蓝牙设备进行无线连接。此外,AC690x还具备丰富的接口,包括USB、SD卡、I2C等,方便开发者与其他硬件进行通信。 数据手册还提供了AC690x软件开发工具的详细说明,包括如何搭建开发环境、如何编写代码、如何调试等。这些内容对于开发者来说非常有用,可以帮助他们快速上手并进行开发工作。 最后,数据手册还包括了AC690x的应用范例和指导,展示了如何将AC690x芯片应用于具体的智能音频设备中。这些范例对于初次使用AC690x的设计师来说非常有帮助,可以提供一些启发和参考。 总之,AC690x数据手册是一份非常重要的技术文档,能够提供给开发者和设计师全面的AC690x相关信息。它不仅介绍了AC690x的技术规格,还提供了开发工具和应用范例,帮助开发者更好地解和应用AC690x芯片。 ### 回答3: AC690X是一款高性能的处器和多功能音频芯片。它广泛应用于各种消费电子产品,如音箱、耳机和智能音频设备中。AC690X的数据手册为用户提供了丰富的技术信息和功能介绍。 AC690X的数据手册包括了该芯片的硬件架构、电气特性、引脚定义以及内置模块的详细说明。用户可以通过手册了解芯片的基本规格和接口特性,帮助他们在设计和开发阶段更好地使用和调试芯片。 此外,数据手册中还包括了AC690X的功能和特性的详细描述。例如,AC690X支持多通道音频处功能,如均衡器、时延、虚拟环绕声等。手册会详细介绍每个模块的功能原,以及相应的软件开发指南和配置参数,帮助开发人员更好地了解和使用芯片的各种功能。 数据手册还提供了AC690X的软件开发和编程接口的相关信息。包括芯片的软件开发工具和编程语言支持等。开发人员可以根据手册提供的接口规范和代码示例来进行软件开发和集成。 总之,AC690X的数据手册提供了一份详尽完整的技术指南,让用户能够更好地解和应用这款音频芯片。无论是硬件工程师、软件开发人员还是普通用户,都可以通过数据手册来学习和掌握AC690X的相关知识,进而设计和开发出更高质量的音频产品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JaLLs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值