⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer1.c

📁 Hitech microchip PIC C18 Compiler
💻 C
字号:
/*A sample project file to be used with HI-TIDE, to demonstrate the functionality of the microcontroller's TIMER1.*//*Refer to timer1.txt for additional information*/#include <pic18.h>#include "timer1.h"#include <stdio.h>void init(void);void putch(unsigned char);volatile bit UPDATE_REQUIRED ;								/* used to indicate when to refresh output data */void main(void){	init();	while(1)	{																									RC1=TMR1ON;												/*timer on/off -RED LED*/			LED3=TMR1L;												/*display current value of TMR1L*/			T1CKPS1=RA1;											/*update values of prescalar bits*/			T1CKPS0=RA0;  			if (UPDATE_REQUIRED)								 /*display current  settings for TIMER1*/			{				printf("\n TIMER1 STATUS\n----------------\n");				if (TMR1ON){	printf("TIMER1 is ON\n");}				else {printf("TIMER1 is OFF\n");}				if (TMR1CS){	printf("TIMER1 is in  COUNTER mode\n");}				else {printf("TIMER1 is in TIMER  mode\n");}								UPDATE_REQUIRED=0;				}	}}void init(void){	T1CON=0x80;															/* we are testing  TIMER1 */	T1CKPS1=RA1;														/*update values of prescalar bits*/	T1CKPS0=RA0;  	TMR1IF=0;																/* Clear overflow flag*/	TMR1IE=1;																/* Enable TIMER1 interrupts */		TMR1=0;																	/*Load initial value to TIMER1*/																							T3CON=0x00;															/*use TIMER3 as reference for comparison*/	TMR3IF=0;																		TMR3IE=1;																	TMR3=0;																	/*Load initial value to TIMER3*/	RBIE=1;																	/* enable PORTB interrupts to */	GIEH=1;																	/* allow interrupts from PUSH BUTTONS */	GIEL=1;		TXEN=1;																	/* enable serial port transmissions */	SPEN=1;					TXIE=0;																	/* not interrupt driven */			TRISA=0x03;															/* Set first 2 bits to input to read DIP switch values */																							ADCON1=0x0F;														/*configure pins of PORTA to be digital inputs*/	TRISB=0xF0;															/* Push button is connected to   RB4 to turn timers ON and OFF*/	TRISC=0x01;															/* 1bit LED panel is connected to RC1 to indicate TIMER1 ON/OFF status*/																					/* Push button connected to  RC0 is used to test TIMER1 as a counter*/	TRISH=0x00;															/* LED panel indicates frequency of TIMER3*/	TRISE=0x00;															/* LED panel indicates current frequency of TIMER1 */	TRISF=0x00;															/* LED panel shows current value of register TMR1L */	TRISD=0xFF;															/* 8-bit DIP switch to set  value of LED pannels */		LED1=PORTD;															/*Load LEDs with current value of 8-bit DIP*/	LED2=PORTD;	LED3=TMR1L;															/*Load LED3 with  current value of TMR1L*/	UPDATE_REQUIRED=1;}void putch(unsigned char c){	TXREG=c;																/* transmit a character to Serial IO */	while(!TXIF)continue;	TXIF=0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -