Скачиваний:
29
Добавлен:
09.05.2014
Размер:
3.3 Кб
Скачать
#include "aduc812.h"
#include "led.h"
#include "max.h"
#include "rtc.h"
#include "i2c.h"
#include "async.h"
#include "keyboard.h"
#include "lcd.h"
#include "tim.h"
#include "sound.h"
#define ERR_OUT_OF_RANGE "\n\rnumber not 0-255\n\r\0"
#define ERR_INVALID_CHAR "\n\rinvalid operator\n\r\0"
#define ERR_CLEAR_STOPWATCH "\n\rclear stopwatch\n\r\0"

unsigned xdata char word[16] = {'E','n','t','e','r',' ','(','h','h',':','m','m',':','s','s',')'};
int i1; 

void WriteEnter()
{
	CLEAR();
	for (i1 = 1; i1 <= 16; i1++)
	{
		GOTOXY(i1,1);
		PRINTCHAR(word[i1-1]);
	}
}


void EnterTime(unsigned char mode)
{
	unsigned char c;
	int i = 0, d = 0, hms = 0, hh = 0, mm = 0, ss = 0;
	unsigned char allow_exit = 0;

	while(1)
		if (readKeyBuffer(&c))
		{
			switch(i)
			{
			case 0:   
				if(c>=0x30 && c<0x3A)
				{
					d=(c-0x30)*10;	
					i=1;
					GOTOXY(3*hms + 1, 2);
					PRINTCHAR(c);
				}
				else if (c == '#') return;
				break;
			case 1:  
				if(c>=0x30 && c<0x3A)
				{
					d+=(c-0x30); 
					GOTOXY(3*hms + 2, 2);
					PRINTCHAR(c);
					i=0;
					switch(hms)
					{
						case 0:
							if (d >= 0 && d <= 23)
							{
								hh = d;
								hms = 1;
								GOTOXY(3, 2);
								PRINTCHAR(':');
							}
							else
							{
								GOTOXY(1,2); PRINTCHAR(' '); GOTOXY(2,2); PRINTCHAR(' ');
							}
							break;
						case 1:
							if (d >= 0 && d <= 59)
							{
								mm = d;
								hms = 2;
								GOTOXY(6, 2);
								PRINTCHAR(':');
							}
							else
							{
								GOTOXY(4,2); PRINTCHAR(' '); GOTOXY(5,2); PRINTCHAR(' ');
							}
							break;
						case 2:
							if (d >= 0 && d <= 59)
							{
								ss = d;
								hms = 0;
								allow_exit = 1;
							}
							else
							{
								GOTOXY(7,2); PRINTCHAR(' '); GOTOXY(8,2); PRINTCHAR(' ');
							}
							break;
					}
					d = 0;
				}
				else if (c == '#') return;
				break;
			}
			if (allow_exit)
			{
				if (mode == 0) 
				{
					time.hour = hh;
					time.min = mm;
					time.sec = ss;
					if (set_time(&time))
					{    
						//type("test_time(): error!\r\n");
						return;
					}
					//else
						//printf_fast("New time set!\r\n");
				}
				else 
				{
					alarm_time.hour = hh;
					alarm_time.min = mm;
					alarm_time.sec = ss;
					//printf_fast("New alarm time set!\r\n");
				}
				break;
			}
		}
}


void InitTimes() 
{
	time.hour = 0;
	time.min = 0;
	time.sec = 1;
	if (set_time(&time))
		return;

	alarm_time.hour = 0;
	alarm_time.min = 0;
	alarm_time.sec = 0;
} 

void startStop()
{
    unsigned char symbol;
    int i = 0;
    while(1) 
    {	
		if (readKeyBuffer(&symbol))
        {	
			if (IsFinish) 
			{ 
				ET1 = 0;
				snd_shut_up;
				init_timer2(S9600);
				IsFinish = !IsFinish; 
				continue; 
			}
			switch (symbol)
			{	
				case 'A':
					ET1 = 0;
					WriteEnter();
					EnterTime(0);
					CLEAR();
					ET1 = 1;
					break;
				case 'B':
					ET1 = 0;
					WriteEnter();
					EnterTime(1);
					CLEAR(); 
					ET1 = 1;
					break;	
			}
        }
    }
} 

void main( void )
{   
	InitTimes();
    	INITLCD();
	initKeyboard();
	init_timer2(S9600);
	startStop();
}    
Соседние файлы в папке SRC
  • #
    09.05.20146.75 Кб29sound.rel
  • #
    09.05.201436.25 Кб29sound.rst
  • #
    09.05.201440.87 Кб29sound.sym
  • #
    09.05.20142.05 Кб29sync.c
  • #
    09.05.201423.33 Кб29test_led.asm
  • #
    09.05.20143.3 Кб29test_led.c
  • #
    09.05.20141.59 Кб29test_led.c~
  • #
    09.05.201461.38 Кб29test_led.lst
  • #
    09.05.201413.42 Кб29test_led.rel
  • #
    09.05.201461.38 Кб29test_led.rst
  • #
    09.05.201441.97 Кб29test_led.sym