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

📄 resist.c

📁 一个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 + -