TTC定時器中斷——MPSOC實戰3

開啟TTC定時器,不同于7000系列的私有定時器

此處設置LPD_LSBUS頻率

TTC頻率取決于LPD_LSBUS

可前往指定位置查看參數

不使能填寫對應宏

可前往指定位置查看參數

main.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"
#include "gpio.h"
#include "Ttc.h"
#include "intr.h"//定義變量
XGpioPs 	Gpio;			//GPIO	驅動實例
XScuGic 	Intc;			//GIC	驅動實例
XTtcPs 		TTC;			//定時器 驅動實例int main(){xil_printf("MIO_TTC_INT\r\n");mio_config(&Gpio);TTC_config(&TTC);TTC_intr_config(&Intc,&TTC);XTtcPs_Start(&TTC);while(1){}return 0;
}

main.h

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"#define GPIO_DEVICE_ID		XPAR_XGPIOPS_0_DEVICE_ID		//MIO器件ID
#define MIO_LED0			0
#define MIO_LED1			7
#define MIO_LED2			8
#define MIO_KEY0			12
#define MIO_KEY1			11
#define TTC_DEVICE_ID		XPAR_XTTCPS_0_DEVICE_ID			//TTC定時器器件ID
#define TTC_INTR_ID			XPAR_XTTCPS_0_INTR				//TTC定時器中斷ID
#define INTC_DEVICE_ID		XPAR_SCUGIC_SINGLE_DEVICE_ID	//中斷控制器器件ID#define TIMER_LOAD_VALUE	20000000 - 1				    //TTC定時器裝載值     100Mhz->0.2ms = 20_000_000

gpio.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "gpio.h"
#include "main.h"void mio_config(XGpioPs *gpio_ptr){////////////配置GPIO輸入輸出////////////XGpioPs_Config *ConfigPtr;//根據器件ID查找GPIO配置信息ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);//對GPIO驅動初始化XGpioPs_CfgInitialize(gpio_ptr, ConfigPtr,ConfigPtr->BaseAddr);//設置引腳方向 	0:輸入 	1輸出XGpioPs_SetDirectionPin(gpio_ptr, MIO_LED0, 1);XGpioPs_SetDirectionPin(gpio_ptr, MIO_LED1, 1);//設置輸出使能	0: 不使能	1: 使能XGpioPs_SetOutputEnablePin(gpio_ptr, MIO_LED0, 1);XGpioPs_SetOutputEnablePin(gpio_ptr, MIO_LED1, 1);//設置初始狀態XGpioPs_WritePin(gpio_ptr, MIO_LED0, 0x0);XGpioPs_WritePin(gpio_ptr, MIO_LED1, 0x0);
}

gpio.h

? ? ? ? ?

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "main.h"extern XGpioPs 	Gpio;			//GPIO	驅動實例#define led0(a)	XGpioPs_WritePin(&Gpio,MIO_LED0,a);void mio_config(XGpioPs *gpio_ptr);

intr.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"
#include "intr.h"
#include "xttcps_hw.h"u8 led_state	;void TTC_intr_config(XScuGic *intr_ptr,XTtcPs *TTC_ptr){//GIC配置信息驅動實例XScuGic_Config *IntcConfig;//根據中斷控制器的器件ID查找配置信息IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);//根據查找到的配置信息初始化中斷控制器XScuGic_CfgInitialize(intr_ptr, IntcConfig,IntcConfig->CpuBaseAddress);//關聯GPIO中斷處理程序XScuGic_Connect(intr_ptr, TTC_INTR_ID,(Xil_ExceptionHandler)IntrHandler,(void *)TTC_ptr);//使能GIC的GPIO中斷XScuGic_Enable(intr_ptr, TTC_INTR_ID);//使能TTC定時器中斷XTtcPs_EnableInterrupts(TTC_ptr,XTTCPS_IXR_INTERVAL_MASK);//針對異常初始化Xil_ExceptionInit();//注冊中斷請求異常處理程序Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,intr_ptr);//使能異常處理Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ);
}void IntrHandler(void *CallBackRef){XTtcPs *TTC_ptr = (XTtcPs *) CallBackRef;led_state = !led_state;xil_printf("led_state = %d\r\n",led_state);XTtcPs_ClearInterruptStatus(TTC_ptr,XTTCPS_IXR_INTERVAL_MASK);
}

intr.h

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"void TTC_intr_config(XScuGic *intr_ptr,XTtcPs *TTC_ptr);
void IntrHandler(void *CallBackRef);

Ttc.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"
#include "Ttc.h"void TTC_config(XTtcPs *TTC_ptr){XTtcPs_Config *ConfigPtr;//根據器件ID查找GPIO配置信息ConfigPtr = XTtcPs_LookupConfig(TTC_DEVICE_ID);//對定時器驅動初始化XTtcPs_CfgInitialize(TTC_ptr, ConfigPtr,ConfigPtr->BaseAddress);//配置定時器參數//配置工作模式   定時模式XTtcPs_SetOptions(TTC_ptr, XTTCPS_OPTION_INTERVAL_MODE);//預分頻   不使能XTtcPs_SetPrescaler(TTC_ptr,XTTCPS_CLK_CNTRL_PS_DISABLE);//設置間隔   定時值XTtcPs_SetInterval(TTC_ptr,TIMER_LOAD_VALUE);//開啟定時器   ->配置完中斷后//XTtcPs_Start(TTC_ptr);
}

Ttc.h

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"void TTC_config(XTtcPs *TTC_ptr);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/99121.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/99121.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/99121.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能訓練師三級備考筆記

一、實操1&#xff09;通用語法&#xff08;常見于實操題第一塊代碼塊&#xff09;1.讀取文件數據或加載數據集等描述時一般為以下結構&#xff1a;Datapd.read_文件格式(文件名) 注意&#xff1a;文件名需要用‘ ’框起來&#xff0c;必須要有引號文件格式有以下內容csv、txt…

Cherry Studio遞歸工具調用機制深度解析

在現代AI應用開發中,工具調用(Tool Calling)已成為大語言模型與外部系統交互的核心機制。Cherry Studio作為一款先進的AI對話客戶端,實現了一套完整的遞歸工具調用系統,能夠讓AI助手在執行復雜任務時自動調用多個工具,并根據執行結果智能決策下一步操作。本文將深入解析這…

[哈希表]966. 元音拼寫檢查器

966. 元音拼寫檢查器 class Solution:def spellchecker(self, wordlist: List[str], queries: List[str]) -> List[str]:origin set(wordlist) # 存儲原始單詞用于完全匹配lower_to_origin {} # 存儲小寫形式到原始單詞的映射vowel_to_origin {} # 存儲元音模糊形…

正則表達式與文本三劍客(grep、sed、awk)基礎與實踐

正則表達式基礎與實踐一、正則表達式概述1. 定義正則表達式&#xff08;Regular Expression&#xff0c;簡稱 RE&#xff09;是用于描述字符排列和匹配模式的語法規則&#xff0c;核心作用是對字符串進行分割、匹配、查找、替換操作。它本質是 “模式模板”&#xff0c;Linux 工…

eclipse中web項目編譯后的lib里面jar為空問題處理

1. 檢查項目構建配置驗證項目性質右鍵單擊項目 → Properties確認項目已正確配置&#xff1a;?Project Facets?&#xff1a;確保已勾選"Dynamic Web Module"?Targeted Runtimes?&#xff1a;確保已選擇服務器運行時&#xff08;如Tomcat&#xff09;檢查部署程序…

C語言中的遞歸問題——漢諾塔問題

漢諾塔&#xff08;Tower of Hanoi)&#xff0c;又稱河內塔&#xff0c;是一個源于印度古老傳說的益智玩具。傳說大梵天創造世界的時候做了三根金剛石柱子&#xff0c;在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在…

ArkAnalyzer源碼初步分析I——分析ts項目流程

1.前言&#xff1a; 鴻蒙程序分析框架ArkAnalyzer&#xff08;方舟分析器&#xff09; 源碼地址 入門文檔 2.閱讀入門文檔后&#xff1a; 本人具有一定的Java開發經驗。雖然我對 TypeScript&#xff08;TS&#xff09;和 ArkTS 還不熟&#xff0c;但很多概念對我這個 Java 開…

c#基礎二(類和對象,構造器調用順序、訪問級別、重寫和多態、抽象類和接口)

一、類1.0對象初始化器class Student {public String name;public int age { get; set; } } internal class Program {static void Main(string[] args){ //寫法一Student stunew Student();stu.name"Tom";stu.age20;//寫法二Student stu2 new Student { name &qu…

Qt之快捷鍵、事件處理、自定義按鍵——完成記事本項目

快捷鍵我們電腦中的記事本中還支持快捷鍵&#xff0c;如“CTRLO”打開文件、“CTRLS”保存文件在Qt中使用QShortcut這個類創建快捷鍵在.cpp文件的構造函數中創建QShortcut對象&#xff0c;綁定打開文件和保存文件的槽函數放大縮小字體還是在.cpp的構造函數中編寫代碼Widget::Wi…

Open cascade中如何使用BRepAlgoAPI_Splitter分割一個Face

理論介紹 在OpenCASCADE幾何建模內核中&#xff0c;BRepAlgoAPI_Splitter是一個強大的工具&#xff0c;用于將一個形狀&#xff08;Shape&#xff09;用另一個形狀&#xff08;Tool&#xff09;進行分割。這種操作在CAD建模中非常常見&#xff0c;比如用平面切割實體、用曲線分…

【醫療 AI】Baichuan-M2 醫療大模型:技術解讀與使用方法

【醫療 AI】Baichuan-M2 醫療大模型&#xff1a;技術解讀與使用方法1. Baichuan-M2 醫療大模型簡介1.1 基本信息1.2 下載地址1.3 技術特點2. Baichuan-M2 模型技術報告2.1 摘要2.2 醫學性能評估2.2.1 HealthBench基準2.2.2 中國醫療場景對比評估2.3 系統架構2.3.1 驗證器系統2.…

unity pcd 二進制版 簡單顯示文件對象(單色)

unity Point Cloud Viewer and Tool 那個插件不支持pcd二進制&#xff0c;而且網上到處都是AI 我恨這種AI濫用&#xff0c;提供不了一點價值 好了&#xff0c;言歸正傳 可以在Point Cloud Viewer and Tool這個插件報錯地方轉用這個代碼&#xff0c;具體咋結合請自行研究。 …

強大的開源文檔問答工具-Kotaemon

Kotaemon 是一個基于 RAG&#xff08;Retrieval-Augmented Generation&#xff09;架構的開源文檔問答工具&#xff0c;為用戶提供與文檔對話的智能交互體驗。該項目同時服務于終端用戶和開發者&#xff0c;具有高度的可擴展性和定制化能力。技術棧分析核心技術棧后端框架Pytho…

區塊鏈:搭建簡單Fabric網絡并調用智能合約

使用docker服務搭建Hyperledger/fabric網絡的詳細教程&#xff0c;實現構建多節點的簡單聯盟鏈&#xff0c;并編寫、調用智能合約實現投票業務。 目錄 背景知識 Hyperledger Fabric 基本組件 交易(Transaction) 智能合約 實驗目的 實驗環境 基礎依賴 安裝Golang 安裝do…

Web前端面試題(2)

Web前端面試題(附答案及解析)&#xff08;2025.9月最新版&#xff09;-CSDN博客 1.link 與 import 的區別和用法 主要區別 特性<link>import語法類型HTML標簽CSS規則加載方式并行加載&#xff08;與其他資源同時加載&#xff09;串行加載&#xff08;必須等待主CSS文件…

Paxos協議

目錄 Paxos 是什么&#xff08;What&#xff09; Paxos 的目的&#xff08;Why&#xff09; 角色與職責&#xff08;Who&#xff09; 基本流程&#xff08;How&#xff09; 常見問題與對策 什么是多數派&#xff08;Quorum&#xff09; Paxos vs Raft 異同點 Paxos 是什…

第十二篇:Qcom Camx打印實時幀率 FPS

一、第一種方式(有些低平臺可能沒有) adb shell setprop persist.vendor.camera.enableFPSLog TRUE adb shell setprop persist.vendor.camera.systemLogEnable TRUE adb shell setprop vendor.debug.camera.overrideLogLevels 0xff chi-cdk/core/chiframework/chxextensi…

TRAE通用6A規則+敏捷開發5S規則

網上研究別人的一些規則,也搞一份給大家 6A工作流項目規則 身份定義 你是一位資深的軟件架構師和工程師,具備豐富的項目經驗和系統思維能力。你的核心優勢在于: 上下文工程專家:構建完整的任務上下文,而非簡單的提示響應 規范驅動思維:將模糊需求轉化為精確、可執行的規…

【Nginx開荒攻略】Nginx主配置文件結構與核心模塊詳解:從0到1掌握nginx.conf:

目錄 引言 1 nginx.conf的整體結構 2 main全局塊詳解 2.1 核心指令解析 2.1.1 user&#xff1a;運行用戶 2.1.2 worker_processes&#xff1a;工作進程數 2.1.3 pid&#xff1a;PID文件路徑 2.1.4 worker_rlimit_nofile&#xff1a;文件描述符限制 2.2 main塊配置示例…

【前端教程】從基礎到優化:一個登錄頁面的完善過程

最近做了一個簡單的登錄頁面,主要練習了文本框的onfocus與onblur事件的使用。雖然功能實現了,但仔細想想還有不少可以改進的地方。今天就來分享一下這個登錄頁面的開發過程和優化思路。 初始實現與解析 先來看一下最初的實現代碼: <!DOCTYPE html> <html> &l…