Esempio n. 1
0
void kkk_setanalog(unsigned char page,unsigned char offset)
{
	unsigned char mykey=0,i,buffer[4];
	unsigned int temp;
	unsigned int *p=(unsigned int*)SEG_A;
	WriteChinese(Sheding,0,16,'R');
	WriteChinese(Sheding+32,0,32,'R');
	
	temp=Analog[(page+offset)%25]*RATIO;
	buffer[0]=temp/1000;
	buffer[1]=temp%1000/100;
	buffer[2]=temp%100/10;
	buffer[3]=temp%10;
	for(i=0;i<4;)
	{
		mykey=keyscan();
		switch(mykey)
		{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
		case 6:
		case 7:
		case 8:
		case 9:
		case 10:
			buffer[i]=mykey-1;
			WriteChar(Ezk+16*(mykey-1+'0'-0x20),2*(offset+1),8*i,'R');
			break;
		case 11:break;
		case 12:
			i++;
			while(mykey==12)
			{
				mykey=keyscan();
			}
			break;
		case 13:break;
		case 14:break;
		case 15:break;
		case 16:return;
		}
		delay(500);
	}
	temp=(buffer[0]*1000+buffer[1]*100+buffer[2]*10+buffer[3]);
	Analog[(page+offset)%25]=temp/RATIO;
	flash_clr(p);
	flash_write_int16(p++,0x55);
	for(i=0;i<25;i++)
	{
		flash_write_int16(p++,Analog[i]);
	}
}
Esempio n. 2
0
int record_meter_warning(int type)
{
    /* The warning type should be a value between 0 and 15, specifying the warning type to be
       recorded in the recoverable failures word in flash. */
    /* Don't worry about the time taken to write to flash - we are recording a serious
       problem! */
    flash_write_int16((int *) &(nv_parms.seg_a.s.meter_warnings), nv_parms.seg_a.s.meter_warnings & ~(1 << type));
    flash_secure();
    return TRUE;
}