imx6的PWM计数

在不支持PWM计数的imx6平台上,通过Linux内核3.015的中断机制实现PWM计数。利用platform_get_irq获取中断号,编写中断服务函数pwm1_isr进行计数。尽管存在小范围误差,该方法在初步测试中被视为可行。后续考虑采用FIFO空中断或EPIT定时器以提高计数精度。
摘要由CSDN通过智能技术生成

由于imx6并没有PWM计数功能,本次PWM计数主要通过中断进行PWM计数,
本文使用linux3.015的内核,没有设备树。
1、照葫芦画瓢,参考其他的中断,利用platform_get_irq函数获取中断号。

/******Pwm.h中****************/
struct pwm_device {
   
	struct list_head	node;
	struct platform_device *pdev;

	const char	*label;
	struct clk	*clk;

	int		clk_enabled;
	void __iomem	*mmio_base;

	unsigned int	use_count;
	unsigned int	pwm_id;
	int		pwmo_invert;

	int		irq;   /*新添加*/
	void (*enable_pwm_pad)(void);
	void (*disable_pwm_pad)(void);
};
/*添加以下中断要用的函数*/
int pwm_irq_enable(struct pwm_device *pwm)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值