📄 resist.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "pio_lcd16207.h"
#include "nios.h"
void KeyIrq(int context);
void GetKey(void);
int KeyDataOut(void);
void Putout(int ch);
//int KeyData1=20;
int KeyData0=20;
int b[5];
np_pio *KeyData = na_key_data;
/***求10^p次方***/
double pow10(int p)
{
int tmp = labs(p);
int i;
double result=1;
for(i=0;i<tmp;i++)
{
result*=10;
}
return (p>0)?result:(1/result);
}
/*******主函数********/
int main(void)
{
char tmp[32],tmp1[13],tmp2[4];
double result ;
int i=0,code=20,offset=20;
int j,k,l,m,n,p,M,L;
char c1,c2;
char s[3]={"ohm"};
c1='(';
c2=')';
GetKey();
nr_pio_lcdinit(na_lcd_pio);
while(nr_uart_rxchar(0) != 27)
{
code=KeyDataOut();
if(code==6)
{
result=(b[0]*10+b[1])*pow10(b[2]);
gcvt(result,13,tmp1);
M=strlen(tmp1);
for(m=0,n=0;m<M;m++,n++)
{tmp[n]=tmp1[m];}
for(k=n,j=0;j<3;k++,j++)
{tmp[k]=s[j];}
tmp[k]=' ';
tmp[k+1]=c1;
gcvt(offset/100,4,tmp2);
L=strlen(tmp2);
for(p=0,l=k+2;p<L;p++,l++)
{tmp[l]=tmp2[p];}
tmp[l]=c2;
nr_pio_lcdwritescreen(tmp);
i=0; //清零
}
else
{
b[i++]=code%10;
Putout(code);
}
}
return 0;
}
/*********输出色环颜色*********/
void Putout(int ch)
{
switch(ch)
{
case 20:nr_pio_lcdwritescreen("Black");break;
case 11:nr_pio_lcdwritescreen("Brown");break;
case 12:nr_pio_lcdwritescreen("Red");break;
case 13:nr_pio_lcdwritescreen("Orange");break;
case 14:nr_pio_lcdwritescreen("Yellow");break;
case 15:nr_pio_lcdwritescreen("Green");break;
case 16:nr_pio_lcdwritescreen("Blue");break;
case 17:nr_pio_lcdwritescreen("Purple");break;
case 18:nr_pio_lcdwritescreen("Gray");break;
case 19:nr_pio_lcdwritescreen("White");break;
case 21:nr_pio_lcdwritescreen("Gold");break;
case 22:nr_pio_lcdwritescreen("Silver");break;
}
}
int KeyDataOut(void)
{
int t=0;
int k=31;
while(t < 100)
{
if(KeyData0==31)
{
t=100;
KeyData0=100;
}
if (KeyData0<31)
{
k=KeyData0;
}
}
return k;
}
void GetKey(void)
{
np_pio *key = na_key_en;
nr_installuserisr(na_key_en_irq,KeyIrq,(int)key);
key->np_pioedgecapture = 0;
key->np_piointerruptmask = 0xff;
}
void KeyIrq(int context)
{
np_pio *pio = (np_pio *)context;
pio->np_pioedgecapture = 0;
KeyData0=KeyData->np_piodata;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -