国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

I.MX6ull EPIT定時(shí)器

這篇具有很好參考價(jià)值的文章主要介紹了I.MX6ull EPIT定時(shí)器。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一 簡介

EPIT定時(shí)器是一種增強(qiáng)的周期中斷定時(shí)器,完成周期性中斷定時(shí)的功能。

具有以下特點(diǎn)

  1. ?EPIT定時(shí)器是一個(gè)32位的定時(shí)器?
  2. 時(shí)鐘源可選的向下計(jì)數(shù)器??EPIT 共有 3 個(gè)時(shí)鐘源可選擇,ipg_clk、ipg_clk_32k 和 ipg_clk_highfreq
  3. ?當(dāng)計(jì)數(shù)值和比較值相等的時(shí)候產(chǎn)生中斷
  4. ?12 位分頻器 對應(yīng)的值是 0~4095,對應(yīng)1~4096 分頻
  5. ?EPIT定時(shí)器在處理器幾乎不用介入的情況下提供精準(zhǔn)的定時(shí)中斷,時(shí)序分辨率高達(dá)125fs。它可以應(yīng)用于高速數(shù)據(jù)采集、超聲波測距、雷達(dá)等領(lǐng)域。
  6. 可以設(shè)置引腳輸出,如果設(shè)置了的話就會(huì)通過指定的引腳輸出信號。

二 結(jié)構(gòu)原理圖

I.MX6ull EPIT定時(shí)器

2.1 工作原理

圖中 ?EPIT 內(nèi)部有三個(gè)重要的寄存器:

計(jì)數(shù)寄存器(EPIT_CNR)、加載寄存器(EPIT_LR)和比較寄存器(EPIT_CMPR),

????????EPIT 是一個(gè)向下計(jì)數(shù)器,也就是說給它一個(gè)初值,開始遞減,直到減 為 0,EPIT_CNR?里面保存的就是當(dāng)前的計(jì)數(shù)值。如果 EPIT 工作在 set-and-forget 模式下,當(dāng)計(jì)數(shù)寄存器里面的值減少到 0,EPIT 就會(huì)重新從EPIT_LR讀取數(shù)值到計(jì)數(shù)寄存器里面,重新開 始向下計(jì)數(shù)。比較寄存器 EPIT_CMPR?里面保存的數(shù)值用于和計(jì)數(shù)寄存器里面的計(jì)數(shù)值比較,如果相等的話 就會(huì)產(chǎn)生一個(gè)比較事件。

2.2 工作模式

? ? ? ?兩種工作模式:set-and-forget 和 free-running

這兩個(gè)工作模式的區(qū)別如下: set-and-forget 模式:EPITx_CR(x=1,2)寄存器的 RLD 位置 1 的時(shí)候 EPIT 工作在此模式 下,在此模式下 EPIT 的計(jì)數(shù)器從加載寄存器 EPITx_LR 中獲取初始值,不能直接向計(jì)數(shù)器寄存 器寫入數(shù)據(jù)。不管什么時(shí)候,只要計(jì)數(shù)器計(jì)數(shù)到 0,那么就會(huì)從加載寄存器 EPITx_LR 中重新 加載數(shù)據(jù)到計(jì)數(shù)器中,周而復(fù)始。 free-running 模式:EPITx_CR 寄存器的 RLD 位清零的時(shí)候 EPIT 工作在此模式下,當(dāng)計(jì)數(shù) 器計(jì)數(shù)到0以后會(huì)重新從0XFFFFFFFF開始計(jì)數(shù),并不是從加載寄存器EPITx_LR中獲取數(shù)據(jù)。

2.3 23.6.1 Control register (EPITx_CR)

I.MX6ull EPIT定時(shí)器

2.3.1 EPITx_CR field descriptions? 位字段描述

I.MX6ull EPIT定時(shí)器

?I.MX6ull EPIT定時(shí)器

寄存器 EPITx_CR 重要位如下:
CLKSRC(bit25:24): EPIT 時(shí)鐘源選擇位,
為 0 的時(shí)候關(guān)閉時(shí)鐘源,
為1 的時(shí)候選擇選擇Peripheral 時(shí)鐘(ipg_clk),
為 2 的時(shí)候選擇 High-frequency 參考時(shí)鐘(ipg_clk_highfreq),
為 3 的時(shí)候選擇 Low-frequency 參考時(shí)鐘(ipg_clk_32k)。
一般選擇 ipg_clk=66MHz。
PRESCALAR(bit15:4): EPIT 時(shí)鐘源分頻值,可設(shè)置范圍 0~ 4095,分別對應(yīng) 1~ 4096 分頻。
RLD(bit3): EPIT 工作模式,
為 0 的時(shí)候工作在 free-running 模式,
為 1 的時(shí)候工作在 set-and-forget 模式。
一般工作在 set-and-forget 模式。
OCIEN(bit2):比較中斷使能位,
為 0 的時(shí)候關(guān)閉比較中斷,
為 1 的時(shí)候使能比較中斷,
本章試驗(yàn)要使能比較中斷。
ENMOD(bit1):設(shè)置計(jì)數(shù)器初始值,
為 0 時(shí)計(jì)數(shù)器初始值等于上次關(guān)閉 EPIT 定時(shí)器以后計(jì)數(shù)器里面的值,
為 1 的時(shí)候來源于加載寄存器。
EN(bit0): EPIT 使能位,
為 0 的時(shí)候關(guān)閉 EPIT,
為 1 的時(shí)候使能 EPIT。0

2.4??EPIT_SR寄存器

EPIT_SR寄存器,只有bit0有效,表示中斷狀態(tài),寫1清零。當(dāng)OCIF位為1的時(shí)候表示中斷發(fā)生,為0的時(shí)候表示中斷未發(fā)生。我們處理完定時(shí)器中斷以后一定要清除中斷標(biāo)志位。

I.MX6ull EPIT定時(shí)器

2.5??EPIT_LR 寄存器

EPIT_LR寄存器設(shè)置計(jì)數(shù)器的加載值。計(jì)數(shù)器每次計(jì)時(shí)到0以后就會(huì)讀取LR寄存器的值重新開始計(jì)時(shí)。

I.MX6ull EPIT定時(shí)器

2.6??EPIT_CMPR?寄存器

CMPR比較計(jì)數(shù)器,當(dāng)計(jì)數(shù)器的值和CMPR相等以后就會(huì)產(chǎn)生比較中斷。無需設(shè)置

I.MX6ull EPIT定時(shí)器

3? 使用實(shí)驗(yàn)? ?

通過?EPTI1 的中斷來控制 LED0 的亮滅 500ms一次中斷,

3.1 EPIT 的配置步驟

如下:

  • 1、設(shè)置 EPIT1 的時(shí)鐘源
  • 設(shè)置寄存器 EPIT1_CR 寄存器的 CLKSRC(bit25:24)位,選擇 EPIT1 的時(shí)鐘源。
  • 2、設(shè)置分頻值
  • 設(shè)置寄存器 EPIT1_CR 寄存器的 PRESCALAR(bit15:4)位,設(shè)置分頻值。
  • 3、設(shè)置工作模式
  • 設(shè)置寄存器 EPIT1_CR 的 RLD(bit3)位,設(shè)置 EPTI1 的工作模式。
  • 4、設(shè)置計(jì)數(shù)器的初始值來源
  • 設(shè)置寄存器 EPIT1_CR 的 ENMOD(bit1)位, 設(shè)置計(jì)數(shù)器的初始值來源。
  • 5、 使能比較中斷
  • 我們要使用到比較中斷,因此需要設(shè)置寄存器 EPIT1_CR 的 OCIEN(bit2)位,使能比較中斷。
  • 6、設(shè)置加載值和比較值
  • 設(shè)置寄存器 EPIT1_LR 中的加載值和寄存器 EPIT1_CMPR 中的比較值,通過這兩個(gè)寄存器
  • 就可以決定定時(shí)器的中斷周期。
  • 7、 EPIT1 中斷設(shè)置和中斷服務(wù)函數(shù)編寫
  • 使能 GIC 中對應(yīng)的 EPIT1 中斷,注冊中斷服務(wù)函數(shù),如果需要的話還可以設(shè)置中斷優(yōu)先級。最后編寫中斷服務(wù)函數(shù)。
  • 8、使能 EPIT1 定時(shí)器
  • 配置好 EPIT1 以后就可以使能 EPIT1 了,通過寄存器 EPIT1_CR 的 EN(bit0)位來設(shè)置。


驅(qū)動(dòng)編寫

  1. ?配置EPIT1
  2. ?使能對應(yīng)中斷
  3. 注冊中斷 服務(wù)函數(shù)
  4. 使能EPIT1

EPIT1->CR = (1<<24 | frac << 4 | 1<<3 | 1<<2 | 1<<1); 一次配置完EPIT1_CR寄存器

/***************************************************************
Copyright ? zuozhongkai Co., Ltd. 1998-2019. All rights reserved.
文件名	: 	 bsp_epittimer.c
作者	   : 左忠凱
版本	   : V1.0
描述	   : EPIT定時(shí)器驅(qū)動(dòng)文件。
其他	   : 配置EPIT定時(shí)器,實(shí)現(xiàn)EPIT定時(shí)器中斷處理函數(shù)
論壇 	   : www.wtmembed.com
日志	   : 初版V1.0 2019/1/5 左忠凱創(chuàng)建
***************************************************************/
#include "bsp_epittimer.h"
#include "bsp_int.h"
#include "bsp_led.h"

/*
 * @description		: 初始化EPIT定時(shí)器.
 *					  EPIT定時(shí)器是32位向下計(jì)數(shù)器,時(shí)鐘源使用ipg=66Mhz		 
 * @param - frac	: 分頻值,范圍為0~4095,分別對應(yīng)1~4096分頻。
 * @param - value	: 倒計(jì)數(shù)值。
 * @return 			: 無
 */
void epit1_init(unsigned int frac, unsigned int value)
{
	if(frac > 0XFFF)
		frac = 0XFFF;
		
	EPIT1->CR = 0;	/* 先清零CR寄存器 */
	
	/*
     * CR寄存器:
     * bit25:24 01 時(shí)鐘源選擇Peripheral clock=66MHz
     * bit15:4  frac 分頻值
     * bit3:	1  當(dāng)計(jì)數(shù)器到0的話從LR重新加載數(shù)值
     * bit2:	1  比較中斷使能
     * bit1:    1  初始計(jì)數(shù)值來源于LR寄存器值
     * bit0:    0  先關(guān)閉EPIT1
     */
	EPIT1->CR = (1<<24 | frac << 4 | 1<<3 | 1<<2 | 1<<1);
	
	EPIT1->LR = value;	/* 倒計(jì)數(shù)值 */
	EPIT1->CMPR	= 0;	/* 比較寄存器,當(dāng)計(jì)數(shù)器值和此寄存器值相等的話就會(huì)產(chǎn)生中斷 */

	/* 使能GIC中對應(yīng)的中斷 			*/
	GIC_EnableIRQ(EPIT1_IRQn);

	/* 注冊中斷服務(wù)函數(shù) 			*/
	system_register_irqhandler(EPIT1_IRQn, (system_irq_handler_t)epit1_irqhandler, NULL);	

	EPIT1->CR |= 1<<0;	/* 使能EPIT1 */ 
}

/*
 * @description			: EPIT中斷處理函數(shù)
 * @param				: 無
 * @return 				: 無
 */
void epit1_irqhandler(void)
{ 
	static unsigned char state = 0;

	state = !state;
	if(EPIT1->SR & (1<<0)) 			/* 判斷比較事件發(fā)生 */
	{
		led_switch(LED0, state); 	/* 定時(shí)器周期到,反轉(zhuǎn)LED */
	}
	
	EPIT1->SR |= 1<<0; 				/* 清除中斷標(biāo)志位 */
}

3.2 分頻計(jì)算方法

?bit25:24 01 時(shí)鐘源選擇Peripheral clock=66MHz 設(shè)置分頻值1 則計(jì)時(shí)計(jì)數(shù)器為? 66*1000*1000/1*0.5 = 33000 000

	epit1_init(0, 66000000/2);	/* 初始化EPIT1定時(shí)器,1分頻
								 * 計(jì)數(shù)值為:66000000/2,也就是
								 * 定時(shí)周期為500ms。
								 */

? ?文章來源地址http://www.zghlxwxcb.cn/news/detail-474990.html

到了這里,關(guān)于I.MX6ull EPIT定時(shí)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 016——DHT11驅(qū)動(dòng)開發(fā)(基于I.MX6uLL)

    016——DHT11驅(qū)動(dòng)開發(fā)(基于I.MX6uLL)

    目錄 一、 模塊介紹 1.1 簡介 1.2 電路描述 1.3 通信協(xié)議 二、 驅(qū)動(dòng)程序 三、 應(yīng)用程序 四、 上機(jī)實(shí)驗(yàn) ????????DHT11 是一款可測量溫度和濕度的傳感器。比如市面上一些空氣加濕器,會(huì)測量空氣中濕度,再根據(jù)測量結(jié)果決定是否繼續(xù)加濕。DHT11 數(shù)字溫濕度傳感器是一款含有已

    2024年04月16日
    瀏覽(23)
  • 012——LED模塊驅(qū)動(dòng)開發(fā)(基于I.MX6uLL)

    012——LED模塊驅(qū)動(dòng)開發(fā)(基于I.MX6uLL)

    目錄 一、 硬件原理圖 二、 驅(qū)動(dòng)程序 三、 應(yīng)用程序 四、 Makefile 五、操作 ????????又是非常經(jīng)典的點(diǎn)燈環(huán)節(jié) ,每次學(xué)新語言第一步都是hello world,拿到新板子或者學(xué)習(xí)新的操作系統(tǒng),第一步就是點(diǎn)燈。 ????????LED 的驅(qū)動(dòng)方式,常見的有四種。 ① 使用引腳輸出 3.3V 點(diǎn)

    2024年04月13日
    瀏覽(23)
  • I.MX6ULL ARM驅(qū)動(dòng)開發(fā)---網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)框架

    I.MX6ULL ARM驅(qū)動(dòng)開發(fā)---網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)框架

    ??網(wǎng)絡(luò)驅(qū)動(dòng)是 linux 里面驅(qū)動(dòng)三巨頭之一,linux 下的網(wǎng)絡(luò)功能非常強(qiáng)大,嵌入式 linux 中也常常用到網(wǎng)絡(luò)功能。前面我們已經(jīng)講過了字符設(shè)備驅(qū)動(dòng)和塊設(shè)備驅(qū)動(dòng),本章我們就來學(xué)習(xí)一下 linux 里面的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。 ??網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu)分為4層,依次為網(wǎng)絡(luò)協(xié)議驅(qū)

    2023年04月17日
    瀏覽(21)
  • 017——DS18B20驅(qū)動(dòng)開發(fā)(基于I.MX6uLL)

    017——DS18B20驅(qū)動(dòng)開發(fā)(基于I.MX6uLL)

    目錄 一、 模塊介紹 1.1 簡介 1.2 主要特點(diǎn) 1.3 存儲(chǔ)器介紹 1.4 時(shí)序 1.5 命令 1.5.1 命令大全? ? 1.5.2 命令使用 1.5.3 使用示例 1.6 原理圖 二、 驅(qū)動(dòng)程序 三、 應(yīng)用程序 四、 測試 ????????DS18B20 溫度傳感器具有線路簡單、體積小的特點(diǎn),用來測量溫度非常簡單,在一根通信線上

    2024年04月12日
    瀏覽(23)
  • i.MX6ULL驅(qū)動(dòng)開發(fā) | 27 - 使用WM8960 CODEC播放音頻

    i.MX6ULL驅(qū)動(dòng)開發(fā) | 27 - 使用WM8960 CODEC播放音頻

    WM8960是歐勝公司(wolfson)的一款低功耗、高質(zhì)量的立體聲音頻編解碼芯片。 其內(nèi)部集成D類喇叭功放,每個(gè)通道可以驅(qū)動(dòng)一個(gè)1W喇叭(8Ω),內(nèi)部集成3個(gè)立體聲輸入源,可以靈活配置,擁有一路完整的麥克風(fēng)接口。 WM8960內(nèi)部ADC和DAC都為24位,主要特性如下: DAC的SNR(信噪比)

    2024年02月02日
    瀏覽(29)
  • 018——紅外遙控模塊驅(qū)動(dòng)開發(fā)(基于HS0038和I.MX6uLL)

    018——紅外遙控模塊驅(qū)動(dòng)開發(fā)(基于HS0038和I.MX6uLL)

    目錄 一、 模塊介紹 1.1 簡介 1.2 協(xié)議 二、 驅(qū)動(dòng)代碼 三、 應(yīng)用代碼 四、 實(shí)驗(yàn) 五、 程序優(yōu)化 ????????紅外遙控被廣泛應(yīng)用于家用電器、工業(yè)控制和智能儀器系統(tǒng)中,像我們熟知的有電視機(jī)盒子遙控器、空調(diào)遙控器。紅外遙控器系統(tǒng)分為發(fā)送端和接收端,如圖下圖所示。

    2024年04月16日
    瀏覽(21)
  • linux驅(qū)動(dòng)開發(fā) ST7789 LCD驅(qū)動(dòng)移植(I.MX6ULL平臺(tái))

    linux驅(qū)動(dòng)開發(fā) ST7789 LCD驅(qū)動(dòng)移植(I.MX6ULL平臺(tái))

    前言 I.MX6ULL的板子未選配RGB的屏幕,無法在板子上進(jìn)行GUI的開發(fā)調(diào)試,不過手頭上有塊控制器為ST7789V3的LCD屏幕(1.3inch),通過簡易接線后可以很方便進(jìn)行驅(qū)動(dòng)的移植 如有異議,歡迎留言指正 ST7789 LCD控制器 ST7789是一款單芯片TFT-LCD控制器,支持并口與SPI通信方式 特性 控制器支

    2023年04月09日
    瀏覽(24)
  • 使用一根網(wǎng)線,讓Ubuntu和正點(diǎn)原子I.MX6ULL開發(fā)板互相ping通

    使用一根網(wǎng)線,讓Ubuntu和正點(diǎn)原子I.MX6ULL開發(fā)板互相ping通

    準(zhǔn)備一根網(wǎng)線即可 2.1 找根網(wǎng)線將I.MX6ULL和電腦連起來 2.2 讓I.MX6ULL通電運(yùn)行起來,我這里使用的是正點(diǎn)原子版本的內(nèi)核、 2.3 進(jìn)入電腦的網(wǎng)絡(luò)連接后,按照如下步驟操作 2.4 將ip地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)設(shè)置如下,= 注意,子網(wǎng)掩碼一定要是255.255.255.0 IP地址推薦使用192.168.5.

    2024年02月19日
    瀏覽(34)
  • 【Linux 裸機(jī)篇(五)】I.MX6ULL BSP工程管理下的 Makefile編寫、鏈接腳本

    【Linux 裸機(jī)篇(五)】I.MX6ULL BSP工程管理下的 Makefile編寫、鏈接腳本

    文件夾 描述 bsp 存放驅(qū)動(dòng)文件 imx6ul 存放跟芯片有關(guān)的文件,比如 NXP 官方的 SDK庫文件 obj 存放編譯生成的.o 文件 project 存放 start.S 和 main.c 文件,也就是應(yīng)用文件 行 描述 1~7 定義了一些變量,除了第 2 行以外其它的都是跟編譯器有關(guān)的,如果使用其它編譯器的話只需要修改第

    2023年04月20日
    瀏覽(26)
  • i.MX6ULL移植NXP官方Linux內(nèi)核imx_5.4.47_2.2.0

    i.MX6ULL移植NXP官方Linux內(nèi)核imx_5.4.47_2.2.0

    系統(tǒng):Ubuntu18.04 參考資料:百問網(wǎng) IMX6ULL開發(fā)板(從零移植篇-預(yù)覽版)-V0.1,正點(diǎn)原子驅(qū)動(dòng)開發(fā)指南 開發(fā)板:100ask i.MX6ULL PRO 交叉編譯工具鏈的獲取就不寫了 打開 .bashrc 文件。 vi ~/.bashrc 。在該文件最后面添加如下(根據(jù)自己的交叉編譯工具鏈) (1)直接從官網(wǎng)下載,非常慢而

    2024年02月12日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包