Esempio n. 1
0
/*****************************************************************************
*
*   Function name : main
*
*   Returns :       None
*
*   Parameters :    None
*
*   Purpose :       Contains the main loop of the program
*
*****************************************************************************/
int main(void)
{    
	// mt static char __flash *statetext;
	//(PGM_P const char*)
	PGM_P statetext;
	
	// Initial state variables
	statetext = PSTR("Hello World");
	//digit = CHAR2BCD2(number);

	// Program initalization
    LCD_Init();
    sei(); // mt __enable_interrupt();
	
	for (;;)            // Main loop
    {
		if (statetext)
        {
			LCD_puts_f(statetext, 1);
			
			LCD_Colon(1);
			statetext = NULL;   
		}
    } //End Main loop
	
	return 0;
}
Esempio n. 2
0
//	PUTF,# 
//	Verify that # represents a valid string in flash.
//	Set the pFlashStr pointer to the string
//	Call LCD_puts_f(*pFlashStr, scrollmode);
//	Send "Called LCD_puts_f" to the PC.
void OnPUTF(char *PUTFstr)
{
	sendFString(PUTF_msg);
	
	PGM_P text;
	
	text = PSTR("LCD_put_f test\0"); // won't show the _

	LCD_puts_f(text, 1);
}
Esempio n. 3
0
void initializer()
{
	// Calibrate the oscillator:
    OSCCAL_calibration();   

	// Initialize the USART
	USARTinit();
	
	// initialize the LCD
    LCD_Init();                 
	
	// Display instructions on PC
	sendFString(TALKING_TO);
	sendFString(WHO_DEMO);
	
	LCD_puts_f(LCD_START_msg, 1);

}
Esempio n. 4
0
/*****************************************************************************
*
*   Function name : RS232
*
*   Returns :       char ST_state (to the state-machine)
*
*   Parameters :    char input (from joystick)
*
*   Purpose :       Store data from the UART to EEPROM
*
*****************************************************************************/
char RS232(char input)
{
    static char enter = 1;
    char c;
    static char buffer[STRLENGHT];
    static char temp_index;
    
    if (enter)
    {
        __disable_interrupt();
        
        // boost IntRC to 2Mhz to achieve 19200 baudrate
        CLKPR = (1<<CLKPCE);        // set Clock Prescaler Change Enable
        // set prescaler = 4, Inter RC 8Mhz / 4 = 2Mhz
        CLKPR = (1<<CLKPS1);
        
        __enable_interrupt();
        
        LCD_puts_f(TEXT_WAIT, 0);
        enter = 0;
        temp_index = 0;
        c = UDR0;                       // Dummy read to clear receive buffer
        gUART = TRUE;
    }

    if (UCSR0A & (1<<RXC0))
    {
        c = UDR0;
        if (c != '\r')
        {
            if (temp_index < STRLENGHT)
                buffer[temp_index++] = c;
        }
        else    // UART transmission completed
        {
            __disable_interrupt();
                
            CLKPR = (1<<CLKPCE);        // set Clock Prescaler Change Enable
            // set prescaler = 8, Inter RC 8Mhz / 8 = 1Mhz
            CLKPR = (1<<CLKPS1) | (1<<CLKPS0);
                
            __enable_interrupt();
                
            if(temp_index)   
            {
                buffer[temp_index] = '\0';
                for (temp_index = 0; buffer[temp_index]; temp_index++)
                    Name[temp_index] = buffer[temp_index];
                Name[temp_index] = '\0';
                
                enter = 1;
                        
                __EEPUT(EEPROM_START, temp_index);   //store the length of name in EEPROM
                
                StoreEEPROM(Name, temp_index, EEPROM_START + 1);  //store the Name in EEPROM
                
                index = temp_index;
                
                gUART = FALSE;               
                return ST_VCARD_FUNC;
            }
            else    // if no characters received 
            {
                enter = 1;            
                return ST_VCARD_DOWNLOAD_NAME;
            }
        }
    }


    if (input != KEY_NULL)
    {
        enter = 1;
        
        __disable_interrupt();
        
        CLKPR = (1<<CLKPCE);        // set Clock Prescaler Change Enable
        // set prescaler = 8, Inter RC 8Mhz / 8 = 1Mhz
        CLKPR = (1<<CLKPS1) | (1<<CLKPS0);
        
        __enable_interrupt();
        
        gUART = FALSE;
        return ST_VCARD_DOWNLOAD_NAME;
    }


    return ST_VCARD_DOWNLOAD_NAME_FUNC;
}