NY8A051F例程Timer Interrupt_WDT Interrupt

2023-11-20 18:10

本文主要是介绍NY8A051F例程Timer Interrupt_WDT Interrupt,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

NY8A051F例程Timer Interrupt_WDT Interrupt

使用单片机内核:NY8A051F SOP-8

*项目:定时器中断和WDT中断

*文件:main.c

*描述:设置定时器0、定时器1、WDT中断

*1.FINST=4MHz/4T(I_HRC)

*2.定时器0溢出中断标志位将每2048us设置一次,然后切换PB0输出状态(2048us=1us*256*8)

*3.定时器1下溢中断标志位将每1024us设置一次,然后切换PB1输出状态(1024us=1us*256*4)

*4.WDT超时中断标志位将每3.5ms设置一次,然后切换PB2输出状态

*4.1设置项目选项:WDT时基=3.5ms

#include <ny8.h>
#include "ny8_constant.h"
#define UPDATE_REG(x)	__asm__("MOVR _" #x ",F")//! interrupt service routine
void isr(void) __interrupt(0)
{if(INTFbits.T1IF){ PORTB ^= (1<<1);					// PB1 ToggleINTF= (unsigned char)~(C_INT_TMR1);	// Clear T1IF flag bit	}if(INTFbits.T0IF){ PORTB ^= 1;							// PB0 ToggleINTF= (unsigned char)~(C_INT_TMR0);	// Clear T0IF flag bit		}if(INTFbits.WDTIF){ PORTB ^= (1<<2);					// PB2 ToggleINTF= (unsigned char)~(C_INT_WDT);	// Clear WDTIF flag bit		}	}void main(void)
{
unsigned char R_shift_regl = 0xFF;
//;Initial GPIO     IOSTB =  C_PB5_Input | C_PB4_Input | C_PB3_Input;     // Set PB0 & PB1 to input mode,others set to output modePORTB = 0x07;                           // PB0、PB1 & PB2 are output HighDISI();
//;Initial Timer0PCON1 = C_TMR0_Dis;						// Disable Timer0TMR0 = 0;								// Load 0x00 to TMR0 (Initial Timer0 register)T0MD = C_PS0_TMR0 | C_PS0_Div8 ;		// Prescaler0 is assigned to Timer0, Prescaler0 dividing rate = 1:8,clock source is instruction clock//;--Initial WDT (if WDT needs prescaler0 dividing rate )--------------------------------------------------		                               
//	T0MD = C_PS0_WDT						// Prescaler0 is assigned to WDT, Prescaler0 dividing rate = 1:2 (WDT select interrupt)
//;--------------------------------------------------------------------------------------------------------		//;Initial Timer1	TMR1 = 0xFF;							// Load 0xFF to TMR1 (Initial Timer1 register)T1CR1 = C_TMR1_Reload | C_TMR1_En;      // Enable Timer1, Initial value reloaded from TMR1, Non-stop mode T1CR2 = C_TMR1_ClkSrc_Inst | C_PS1_Div4;	// Enable Prescaler1, Prescaler1 dividing rate = 1:4, Timer1 clock source is instruction clock//;Setting Interrupt Enable Register	INTE = C_INT_WDT | C_INT_TMR1 | C_INT_TMR0;	// Enable Timer0、Timer1、WDT overflow interrupt//;Initial Power control registerPCON = C_WDT_En | C_LVR_En;				// Enable WDT ,  Enable LVR//;Enable Timer0 & Global interrupt bit PCON1 = C_TMR0_En;						// Enable Timer0ENI();									// Enable all unmasked interrupts			while(1);
}

更多关于NY8A051F的例程,请留言联系!

这篇关于NY8A051F例程Timer Interrupt_WDT Interrupt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/396471

相关文章

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Java的ArrayDeque使用例程

题目要求为: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接

gcc make cmake例程

main.cpp文件: #include <iostream>#include "utils.h"int main(void) {int a = 1;int b = 2;int c = AddFunc(a, b);std::cout<< c <<std::endl;return 0;} utils.h文件: #pragma onceint AddFunc(int a, int b);

4.15 版本内核调用 init_timer()函数出错

linux/include/linux/timer.h4.15 之前版本struct timer_list {14 /*15 * All fields that change during normal runtime grouped to the16 * same cacheline17 */18 struct hl

java AWT 绘图,实现弹球游戏,有实现keylistener,timer功能

Timer(int delay, ActionListener listener):每间隔delay毫秒,系统自动触发ActionListener监听器里的事件处理器(actionPerformed()方法)。 package javaAWT;import java.awt.Canvas;import java.awt.Color;import java.awt.Dimension;imp

Timer和ScheduledThreadPoolExecutor

文章来源: https://blog.csdn.net/u013332124/article/details/79603943 在jdk自带的库中,有两种技术可以实现定时任务。一种是使用Timer,另外一个则是ScheduledThreadPoolExecutor。下面为大家分析一下这两个技术的底层实现原理以及各自的优缺点。 一、Timer 1. Timer的使用

【PSINS】SINS与航位推算的EKF例程讲解|三维轨迹

文章目录 SINS与航位推算例程构造滤波前滤波主体滤波后处理 运行结果源代码 SINS与航位推算 SINS是捷联惯导,略。 航位推算: 本文讲解的程序是PSINS工具箱(相关文章:PSINS初学指导,https://blog.csdn.net/callmeup/article/details/136459824)的一个函数,在此基础上进行优化。如果要运行,需要先安装工具箱

3-KYLIN订单例程

转:http://blog.itpub.net/30089851/viewspace-2122586/ 一.Hive订单数据仓库构建 1. 创建事实表并插入数据 DROP TABLE IF EXISTS default.fact_order ; create table default.fact_order (   time_key string,   product_key stri

Android -- 视频音频多媒体播放,在线播放, MediaPlayer, SurfaceView, SoundPool, Timer定时器使用

1. SoundPool 用于快速重复的播放短音频 [java]  view plain copy public class MainActivity extends Activity {       private SoundPool soundPool;       private int soundId;          @Override       protec

“Flash闪存”介绍 及 “SD NAND Flash”产品的测试含例程

“Flash闪存”介绍 及 “SD NAND Flash”产品的测试含例程 文章目录 一、“FLASH闪存”是什么?1. 简介2. 特点3. 未来发展 二、SD NAND Flash1. 概述2. 特点3. 引脚分配4. 数据传输模式5. SD NAND寄存器6. 通电图7. 参考设计 三、STM32测试例程 三、STM32测试例程 本篇除了对flash闪存进行简单介绍外,另给读