📄 intrrupu_tes.c
字号:
/***********************************************************************/
/* */
/* FILE :Intrrupu_tes.c */
/* DATE :Fri, Feb 17, 2006 */
/* DESCRIPTION :Main Program */
/* CPU TYPE :SH7144F */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.0). */
/* */
/***********************************************************************/
//#include "typedefine.h"
#ifdef __cplusplus
//#include <ios> // Remove the comment when you use ios
//_SINT ios_base::Init::init_cnt; // Remove the comment when you use ios
#endif
#ifdef __cplusplus
extern "C" {
void abort(void);
#endif
void main(void);
#ifdef __cplusplus
}
#endif
#include <machine.h>
#include "iodefine.h"
void init_SCI(void);
void init_PORT(void);
void put_char(char);
void init_CMT(void);
void prt_str(char *str);
void init_ad(void);
int ad_conv(void);
char get_char(void);
char inp_str(char *x);
int sec,sec1,sec2,sec3;
int cont;
void main(void)
{
int i;
char c,n,m[100];
unsigned short int ad0,ad0_1,ad0_2,ad0_3,ad0_4;
init_PORT();
init_SCI();
init_ad();
init_CMT();
set_imask(0);
PE.DRL.BIT.B15 = 0;
while(1){
ad0 = ad_conv();
put_char('Q');
prt_str(" Hello! ");
ad0_1 = (ad0 / 1000);
put_char(ad0_1+0x30);
ad0_2 = ((ad0 - 1000*ad0_1) / 100);
put_char(ad0_2+0x30);
ad0_3 = ((ad0 - 1000*ad0_1 - 100*ad0_2) / 10);
put_char(ad0_3+0x30);
ad0_4 = (ad0 - 1000*ad0_1 - 100*ad0_2 - 10*ad0_3);
put_char(ad0_4+0x30);
put_char(' ');
put_char(sec3+0x30);
put_char(sec2+0x30);
put_char(':');
put_char(sec1+0x30);
put_char(sec+0x30);
put_char(0x0a);
put_char(0x0d);
c = get_char();
put_char(c);
put_char(0x0a);
put_char(0x0d);
n = inp_str(m);
prt_str(m);
}
}
void init_PORT(void){
PFC.PEIORL.BIT.B15 = 1;
}
void put_char(char str){
while(!SCI1.SSR.BIT.TDRE);
SCI1.TDR = str;
SCI1.SSR.BIT.TDRE = 0;
while(!SCI1.SSR.BIT.TEND);
}
char get_char(void){
char c;
while(!(SCI1.SSR.BYTE & 0x78));
c = SCI1.RDR;
while(!(SCI1.SSR.BIT.RDRF));
SCI1.SSR.BYTE &= ~0x78;
return c;
}
void prt_str(char *str){
while(*str != 0){
put_char(*str);
str++;
}
}
char inp_str(char *x){
char n,d;
while(1){
d = get_char();
if(d == 0x0d)break;
if(d == 0x0a)break;
*x++= d;
n++;
}
*x = 0;
prt_str("\n");
return n;
}
void init_SCI(void){
int i;
MST.CR1.BIT._SCI1 = 0;
PFC.PAIORL.BIT.B4 = 1;
PFC.PACRL2.BIT.PA4MD = 1;
PFC.PACRL2.BIT.PA3MD = 1;
SCI1.SCR.BYTE = 0x00;
SCI1.SMR.BYTE = 0x00;
SCI1.BRR = 19; //38400bps
// SCI1.BRR = 77; 960000bps
for(i=0;i<=1000;i++);
SCI1.SCR.BIT.TE = 1;
SCI1.SCR.BIT.RE = 1;
}
void init_CMT(void){
MST.CR2.BIT._CMT = 0;
CMT0.CMCSR.BIT.CMIE = 1;
CMT0.CMCSR.BIT.CMF = 0;
CMT0.CMCSR.BIT.CKS = 1;
CMT0.CMCOR = 749; //1ms
CMT0.CMCNT = 0;
INTC.IPRG.BIT._CMT0 = 15;
CMT.CMSTR.BIT.STR0 = 1;
}
void init_ad(void){
MST.CR2.BIT._AD0 = 0;
AD0.ADCSR.BIT.CH = 0;
AD0.ADCR.BYTE = 0x00;
}
int ad_conv(void){
short ad0;
AD0.ADCR.BIT.ADST = 1;
while(AD0.ADCSR.BIT.ADF == 0);
AD0.ADCSR.BIT.ADF = 0;
ad0 = AD0.ADDR0.WORD >> 6;
return ad0;
}
#ifdef __cplusplus
void abort(void)
{
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -