GUI Using Smart Resistive Touch-Screen Interface with AVR Atmega32

Published Feb 04, 2021
 16 hours to build
 Intermediate

Topway Smart resistive touch screen(HKT050ATA-C) interface with AVR Atmega32 ..using RS232 and UART

display image

Components Used

MAX232 RS-232 Drivers
MAX232 RS-232 Drivers
1
Atmega32
Atmega32
1
Resistive Touch screen
Resistive Touch screen
1
Description

How to use TopWay Touch Screen?

To interface the Screen with Atmega32 MCU :

  1. Setup Atmel Studio to write and compile your code.
  2. Create a new project and add these  software drivers to your project(Touch screen -UART-Data_types)..
  3. check this link to download code https://github.com/taman2/HMI
  4. Use "Touch_Screen.h" to get commands code and functions prototypes.
  5. Use these commands to generate packets and save it in "TScreen_Send_Buffer".
  6. To Generate packet use "TScreen_Generate_VpFunctions_packet" Function.
  7. use "TScreen_Send_Packet" function to send command to the screen.
  8. To Receive screen packets use "TScreen_Receive_packet"  Function.
  • Touch Screen Software Driver to interface screen with AVR Atmega32 using Atmel Studio IDE For Writing & compiling the code
#include "Data_Types.h"
#include "UART.h"

#ifndef T_SCREEN_H_
#define T_SCREEN_H_

#define HAND_SHAKE               ( 0x30 )
#define READ_VERSION             ( 0x31 )
#define READ_PG_ID               ( 0x32 )
#define T_RESPONSE               ( 0x72/ 0x73/ 0x77/ 0x78/ 0x79)
#define T_RESPONSE_Normal        ( 0x77 )
#define T_RESPONSE_PageID        ( 0x78 )
#define SET_SYS_CONFIG           ( 0xE0 )
#define SEL_PROJECT              ( 0xE1 )
#define T_CALIB                  ( 0xE4 )
#define SCREEN_SAVER             ( 0x5E )
#define BACKLIGHT_CTRL           ( 0x5F )
#define BUZZER_T_SOUND           ( 0x79 )
#define BUZZER_CTRL              ( 0x7A )
#define FLASH_WRITE              ( 0x90 )
#define FLASH_READ               ( 0x91 )
#define RTC_READ                 ( 0x9B )
#define RTC_SET                  ( 0x9C )
#define USR_BIN_READ             ( 0x93 )
#define U_DRV_FORMAT             ( 0xE2 )
#define U_DRV_UNLOCK             ( 0xE3 )

/***************Display Control Function Commands Details***************************/
#define DISP_PAGE                ( 0x70 )
#define SET_ELEMENT_FG           ( 0x7E )
#define SET_ELEMENT_BG           ( 0x7F )
#define SET_CODEPAGE             ( 0xE7 )
#define SUSPEND_VP_REFRESH       ( 0xE8 )

/************VP Function Commands Details ********************************/
#define SUCCESSIVE_WRITE         ( 0x82 )
#define SUCCESSIVE_READ          ( 0x83 )
#define BP1_WRITE                ( 0x4B )
#define BP1_WRITE_COMPRESS       ( 0x4C )
#define G16_WRITE                ( 0x4D )
#define G16_WRITE_ROTATE         ( 0x4E )
#define SYSTEM_Register_Write    ( 0x3B )
#define SYSTEM_Register_Read     ( 0x3C )
#define STR_WRITE                ( 0x42 )
#define STR_READ                 ( 0x43 )
#define STR_FILL                 ( 0x46 )
#define N16_WRITE                ( 0x3D )
#define N16_READ                 ( 0x3E )
#define N16_FILL                 ( 0x3F )
#define N32_WRITE                ( 0x44 )
#define N32_READ                 ( 0x45 )
#define N32_FILL                 ( 0x47 )
#define N64_WRITE                ( 0x48 )
#define N64_READ                 ( 0x49 )
#define N64_FILL                 ( 0x4A )

#define T_SCREEN_HEADER_BYTE     (0XAA)
#define T_SCREEN_TAILE_BYTE1     (0XCC)
#define T_SCREEN_TAILE_BYTE2     (0X33)
#define T_SCREEN_TAILE_BYTE3     (0XC3)
#define T_SCREEN_TAILE_BYTE4     (0X3C)

#define Packet_OK                    1U
#define Packet_NOT_OK                0U
#define T_SCREEN_VAR_SIZE_1          1U
#define T_SCREEN_VAR_SIZE_2          2U
#define T_SCREEN_VAR_SIZE_4          4U
#define T_SCREEN_VAR_SIZE_8          8U
#define T_SCREEN_NO_DATA             0U
#define T_SCREEN_TOGGLE_VAR_BIT      7U
#define T_16BIT_ADDRESS            (0x08)
#define T_32BIT_ADDRESS            (0x02)
#define MAIN_PAGE                  (0x00)
#define TIMER_PAGE                 (0X01)
#define HOUER_METER_PAGE           (0X02)
#define INITIAL_PAGE               (0X03)
#define HOUER_SET_TEMPRATURE_PAGE  (0X04)
#define LED_CTRL_PAGE              (0x05)
#define T_SCREEN_KEY1              (0X01)
#define T_SCREEN_KEY2              (0X02)
#define T_SCREEN_KEY3              (0X03)
#define T_SCREEN_KEY4              (0X04)
#define T_SCREEN_KEY5              (0X05)
#define T_SCREEN_KEY6              (0X06)




/************************* T SCREEN SYSTEM CONFIGRATION COMMANDS ****************************/

#define  T_SCREEN_TIMER_UP_COUNT          03
#define  T_SCREEN_TIMER_DOWEN_COUNT       01
#define  T_SCREEN_TIMER_STOP              00



/******************** SCREEN USED 16bit VARIABLS ADDRESSES ***********************************/

   #define T_SCREEN_VAR16_ADDRESS0                0X00080000
   #define T_SCREEN_VAR16_ADDRESS1                0X00080002
   #define T_SCREEN_VAR16_ADDRESS2                0X00080004
   #define T_SCREEN_VAR16_ADDRESS3                0X00080006
   #define T_SCREEN_VAR16_ADDRESS4                0X00080008
   #define T_SCREEN_VAR16_ADDRESS5                0X0008000A
   #define T_SCREEN_VAR16_ADDRESS6                0X0008000C
   #define T_SCREEN_VAR16_ADDRESS7                0X0008000E
   #define T_SCREEN_VAR16_ADDRESS8                0X00080010
   #define T_SCREEN_VAR16_ADDRESS9                0X00080012
   #define T_SCREEN_VAR16_ADDRESS10               0X00080014
   #define T_SCREEN_VAR16_ADDRESS11               0X00080016
   #define T_SCREEN_VAR16_ADDRESS12               0X00080018
   #define T_SCREEN_VAR16_ADDRESS13               0X0008001A



   
/*********************** SCREEN USED 32bit VARIABLS ADDRESSES *********************************************/


   #define T_SCREEN_VAR32_ADDRESS0                 0X00020000
   #define T_SCREEN_VAR32_ADDRESS1                 0X00020004
   #define T_SCREEN_VAR32_ADDRESS2                 0X00020008
   #define T_SCREEN_VAR32_ADDRESS3                 0X0002000C
   #define T_SCREEN_VAR32_ADDRESS4                 0X00020010
   #define T_SCREEN_VAR32_ADDRESS5                 0X00020014

   
   /*********************** SCREEN USED TIMER VARIABLS ADDRESSES *********************************************/
   
   #define T_SCREEN_TIM0_VAR_ADDRESS               0X0002FFE0
   #define T_SCREEN_TIM1_VAR_ADDRESS               0X0002FFE4
   #define T_SCREEN_TIM2_VAR_ADDRESS               0X0002FFE8
   #define T_SCREEN_TIM3_VAR_ADDRESS               0X0002FFEC
   #define T_SCREEN_TIM4_VAR_ADDRESS               0X0002FFF0

   /*************** SCREEN USED TIMER CTR RIGISRERs  VARIABLS ADDRESSES ********************************/

   #define T_SCREEN_TIM0_CTR_ADDRESS               0X00FFFF00
   #define T_SCREEN_TIM1_CTR_ADDRESS               0X00FFFF01
   #define T_SCREEN_TIM2_CTR_ADDRESS               0X00FFFF02
   #define T_SCREEN_TIM3_CTR_ADDRESS               0X00FFFF03
   #define T_SCREEN_TIM4_CTR_ADDRESS               0X00FFFF04
   
   
 /******************************************** SCREEN GLOBAL VARS  ************************** *********************************************/


   extern volatile uinteg8_t TScreen_Recived_Buffer[15];
   extern volatile uinteg8_t TScreen_Send_Buffer[15];
   extern volatile uinteg8_t TScreen_Recieve_Complete_Flag;
   extern volatile uinteg8_t TScreen_Recived_Buffer_Index;
   extern volatile uinteg8_t TScreen_Recieved_key_pressed;
   extern volatile uinteg8_t TScreen_Recieved_current_Page;
   extern volatile uinteg8_t TScreen_Recieve_Data__Not_Complete_Flag;
   extern volatile uinteg32_t TScreen_Recived_Var_Address;
   extern volatile uinteg32_t TScreen_Recived_Var_Value;
   
/***************************************** SCREEN MAIN  FUNCTIONS  ************************** *********************************************/

void TScreen_Init(void);
void TScreen_Send_Packet(volatile uinteg8_t *TScreen_sentPacket);
void TScreen_Recieve_Packet(void);
void TScreen_Generate_VpFunctions_packet(volatile uinteg8_t *Screen_packet ,uinteg8_t T_Screen_Command ,uinteg32_t T_Screen_Var_Adress
                                         ,uinteg32_t T_Screen_Var_Value, uinteg8_t T_Screen_Var_Size );
											  
void TScreen_GenerateConfig_Status_Functions_packet( uinteg8_t *Screen_packet ,uinteg8_t T_Screen_Command , uinteg64_t T_Screen_Data_Value, 
                                                         uinteg8_t T_Screen_Data_Size);

uinteg8_t TScreen_GetData_From_Recievd_Buffer(void);
void TScreen_Start_Timer(uinteg8_t Timer_Num);
void TScreen_Stop_Timer(void);
void TScreen_Read_Timer_value(uinteg8_t Timer_Num);
void TScreen_Write_Timer_value(uinteg32_t Timer_Value,uinteg8_t Timer_Num);
void TScreen_Read_Temp_value(uinteg8_t Command);
void TScreen_Write_Temp_value(float32_t Temp1,float32_t Temp2);
void TScreen_Disable_Item(uinteg32_t Item_Address);
void Send_Temprature_values_EverySec_ISR(void);
void Send_Temprature_values_EverySec(void);
void TScreen_Mian_State(void);
void TScreen_Set_Time_State(void);
void TScreen_Get_KeyPressed_From_Recievd_Buffer(void);
void TScreen_Get_Value32_From_Recievd_Buffer(void);
void TScreen_Get_Value16_From_Recievd_Buffer(void);
void TScreen_Chang_Page(uinteg8_t U8_PageNum);
void TScreen_Write_Var16(uinteg16_t U16_Value,uinteg32_t Address);
void TScreen_Write_Var32(uinteg16_t U32_Value,uinteg32_t Address);


/*
 * T_SCREEN.c
 *
 * Created: 9/26/2020 5:32:10 PM
 *  Author: Mohamed Salah Taman
 */
#include "TOUCH_SCREEN.h"
#include "UART.h"
#include "avr/eeprom.h"
#include "DHT.h"

volatile uinteg8_t TScreen_Recived_Buffer[15]={0};
volatile uinteg8_t TScreen_Send_Buffer[15]={0};
volatile uinteg8_t TScreen_Recived_Command=0;
volatile uinteg32_t TScreen_Recived_Var_Address=0;
volatile uinteg32_t TScreen_Recived_Var_Value=0;
volatile uinteg8_t TScreen_Recieve_Complete_Flag=0;
volatile uinteg8_t TScreen_Recieve_Data__Not_Complete_Flag=1;
volatile uinteg8_t TScreen_Recived_Buffer_Index=0;
volatile uinteg8_t TScreen_Recieved_current_Page=0;
volatile uinteg8_t TScreen_Recieved_key_pressed=0;

/***********************FOR VP Functions*************************************************************************/

 void TScreen_Generate_VpFunctions_packet(volatile uinteg8_t *Screen_packet ,uinteg8_t T_Screen_Command , uinteg32_t T_Screen_Var_Adress ,uinteg32_t T_Screen_Var_Value, uinteg8_t T_Screen_Var_Size )
{
	if(T_Screen_Var_Size ==T_SCREEN_VAR_SIZE_2)
	{
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Var_Adress>>24);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Var_Adress>>16);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Var_Adress>>8);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Var_Adress);
        Screen_packet[6]=(uinteg8_t)(T_Screen_Var_Value>>8);
        Screen_packet[7]=(uinteg8_t)(T_Screen_Var_Value);
        Screen_packet[8]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[9]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[10]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[11]=(T_SCREEN_TAILE_BYTE4);
	}
	else if(T_Screen_Var_Size ==T_SCREEN_VAR_SIZE_1)
	{
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Var_Adress>>24);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Var_Adress>>16);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Var_Adress>>8);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Var_Adress);
        Screen_packet[6]=(uinteg8_t)(T_Screen_Var_Value);
        Screen_packet[7]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[8]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[9]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[10]=(T_SCREEN_TAILE_BYTE4);
	}
	else if(T_Screen_Var_Size ==T_SCREEN_VAR_SIZE_4)
	{
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Var_Adress>>24);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Var_Adress>>16);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Var_Adress>>8);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Var_Adress);
        Screen_packet[6]=(uinteg8_t)(T_Screen_Var_Value>>24);
        Screen_packet[7]=(uinteg8_t)(T_Screen_Var_Value>>16);
        Screen_packet[8]=(uinteg8_t)(T_Screen_Var_Value>>8);
        Screen_packet[9]=(uinteg8_t)(T_Screen_Var_Value);
        Screen_packet[10]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[11]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[12]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[13]=(T_SCREEN_TAILE_BYTE4);
	}
	else if(T_Screen_Var_Size ==T_SCREEN_NO_DATA)
	{

        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Var_Adress>>24);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Var_Adress>>16);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Var_Adress>>8);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Var_Adress);
        Screen_packet[6]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[7]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[8]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[9]=(T_SCREEN_TAILE_BYTE4);
	}
    else if(T_Screen_Var_Size ==T_SCREEN_TOGGLE_VAR_BIT)
	{

        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Var_Adress>>24);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Var_Adress>>16);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Var_Adress>>8);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Var_Adress);
        Screen_packet[6]=(uinteg8_t)(T_Screen_Var_Value);
        Screen_packet[7]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[8]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[9]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[10]=(T_SCREEN_TAILE_BYTE4);
	}

}

void TScreen_GenerateConfig_Status_Functions_packet( uinteg8_t *Screen_packet ,uinteg8_t T_Screen_Command , uinteg64_t T_Screen_Data_Value,uinteg8_t T_Screen_Data_Size)
{
    if(T_Screen_Data_Size ==T_SCREEN_NO_DATA)
    {
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[3]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[4]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[5]=(T_SCREEN_TAILE_BYTE4);
    }
    else if(T_Screen_Data_Size ==T_SCREEN_VAR_SIZE_4)
    {
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Data_Value>>24);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Data_Value>>16);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Data_Value>>8);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Data_Value);
        Screen_packet[6]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[7]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[8]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[9]=(T_SCREEN_TAILE_BYTE4);
    }
    else if(T_Screen_Data_Size ==T_SCREEN_VAR_SIZE_2)
    {
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Data_Value>>8);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Data_Value);
        Screen_packet[4]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[5]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[6]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[7]=(T_SCREEN_TAILE_BYTE4);
    }
    else if(T_Screen_Data_Size ==T_SCREEN_VAR_SIZE_1)
    {
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Data_Value);
        Screen_packet[3]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[4]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[5]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[6]=(T_SCREEN_TAILE_BYTE4);
    }
    else if(T_Screen_Data_Size ==7)
    {
        Screen_packet[0]=T_SCREEN_HEADER_BYTE;
        Screen_packet[1]=T_Screen_Command;
        Screen_packet[2]=(uinteg8_t)(T_Screen_Data_Value>>48);
        Screen_packet[3]=(uinteg8_t)(T_Screen_Data_Value>>40);
        Screen_packet[4]=(uinteg8_t)(T_Screen_Data_Value>>32);
        Screen_packet[5]=(uinteg8_t)(T_Screen_Data_Value>>24);
        Screen_packet[6]=(uinteg8_t)(T_Screen_Data_Value>>16);
        Screen_packet[7]=(uinteg8_t)(T_Screen_Data_Value>>8);
        Screen_packet[8]=(uinteg8_t)(T_Screen_Data_Value);
        Screen_packet[9]=(T_SCREEN_TAILE_BYTE1);
        Screen_packet[10]=(T_SCREEN_TAILE_BYTE2);
        Screen_packet[11]=(T_SCREEN_TAILE_BYTE3);
        Screen_packet[12]=(T_SCREEN_TAILE_BYTE4);
    }

}
void TScreen_Send_Packet(volatile uinteg8_t *TScreen_sentPacket){
	USART_Send_Packet(TScreen_sentPacket,T_SCREEN_TAILE_BYTE4);
}
void TScreen_Recieve_Packet(void)
{
 USART_Receive_Byte_Iterrupt(&TScreen_Recived_Buffer[TScreen_Recived_Buffer_Index]);
  TScreen_Recieve_Data__Not_Complete_Flag=1;
  if(TScreen_Recived_Buffer[0]== T_SCREEN_HEADER_BYTE)
  {
	if(TScreen_Recived_Buffer[TScreen_Recived_Buffer_Index]!= T_SCREEN_TAILE_BYTE4)
	{
	  TScreen_Recived_Buffer_Index++;
	}
	else
	{
	  TScreen_Recived_Buffer_Index=0;
	  TScreen_Recieve_Complete_Flag=1;
	  TScreen_Recieve_Data__Not_Complete_Flag=0;
	}
  }
  else
  {
	  TScreen_Recived_Buffer_Index=0;
	  TScreen_Recieve_Complete_Flag=1;
      TScreen_Recieve_Data__Not_Complete_Flag=0;
  }
}
uinteg8_t TScreen_GetData_From_Recievd_Buffer(void)
{

    if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1] ==T_RESPONSE_Normal &&TScreen_Recived_Buffer[3]==T_16BIT_ADDRESS)
    {
        TScreen_Recived_Var_Address=TScreen_Recived_Buffer[2];
        TScreen_Recived_Var_Address=(TScreen_Recived_Var_Address<<8);
        TScreen_Recived_Var_Address|=TScreen_Recived_Buffer[3];
        TScreen_Recived_Var_Address=(TScreen_Recived_Var_Address<<8);
        TScreen_Recived_Var_Address|=TScreen_Recived_Buffer[4];
        TScreen_Recived_Var_Address=(TScreen_Recived_Var_Address<<8);
        TScreen_Recived_Var_Address|=TScreen_Recived_Buffer[5];
        TScreen_Recived_Var_Value=TScreen_Recived_Buffer[6];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[7];
        TScreen_Recieve_Complete_Flag=0;
        return 1;
    }

    else if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1] ==T_RESPONSE_Normal  &&TScreen_Recived_Buffer[3]==T_32BIT_ADDRESS)
    {
        TScreen_Recived_Var_Address=TScreen_Recived_Buffer[2];
        TScreen_Recived_Var_Address=(TScreen_Recived_Var_Address<<8);
        TScreen_Recived_Var_Address|=TScreen_Recived_Buffer[3];
        TScreen_Recived_Var_Address=(TScreen_Recived_Var_Address<<8);
        TScreen_Recived_Var_Address|=TScreen_Recived_Buffer[4];
        TScreen_Recived_Var_Address=(TScreen_Recived_Var_Address<<8);
        TScreen_Recived_Var_Address|=TScreen_Recived_Buffer[5];
        TScreen_Recived_Var_Value=TScreen_Recived_Buffer[6];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[7];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[8];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[9];

        TScreen_Recieve_Complete_Flag=0;
        return 1;

    }

    else if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1]
             ==T_RESPONSE_PageID)
    {
        TScreen_Recieved_current_Page=TScreen_Recived_Buffer[3];
        TScreen_Recieved_key_pressed=TScreen_Recived_Buffer[4];
        TScreen_Recieve_Complete_Flag=0;
        return 1;

    }
    else if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1]==READ_PG_ID )
    {
        TScreen_Recieved_current_Page=TScreen_Recived_Buffer[3];
        TScreen_Recieved_key_pressed=0;
        TScreen_Recieve_Complete_Flag=0;
        return 1;
    }
    else if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1]==N32_READ)
    {

        TScreen_Recived_Var_Value=TScreen_Recived_Buffer[2];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[3];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[4];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[5];
        TScreen_Recieve_Complete_Flag=0;
    }
    else
    {
        TScreen_Recieve_Complete_Flag=0;
    }

    return 0;

}
void TScreen_Get_KeyPressed_From_Recievd_Buffer(void)
{

  if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1] ==T_RESPONSE_PageID)
  {
    TScreen_Recieved_current_Page=TScreen_Recived_Buffer[3];
    TScreen_Recieved_key_pressed=TScreen_Recived_Buffer[4];
    TScreen_Recieve_Complete_Flag=0;

  }
  else
  {
    TScreen_Recieve_Complete_Flag=0;

  }
}
void TScreen_Get_Value32_From_Recievd_Buffer(void)
{

    if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1]==N32_READ)
	{

        TScreen_Recived_Var_Value=TScreen_Recived_Buffer[2];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[3];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[4];
        TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
        TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[5];
        TScreen_Recieve_Complete_Flag=0;
	}
	else
	{
		TScreen_Recieve_Complete_Flag=0;
	}
}
void TScreen_Get_Value16_From_Recievd_Buffer(void)
{

	if(TScreen_Recived_Buffer[0]==T_SCREEN_HEADER_BYTE &&TScreen_Recived_Buffer[1]==N16_READ)
	{
		TScreen_Recived_Var_Value=0x00;
		TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
		TScreen_Recived_Var_Value|=0x00;
		TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
		TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[2];
		TScreen_Recived_Var_Value=(TScreen_Recived_Var_Value<<8);
		TScreen_Recived_Var_Value|=TScreen_Recived_Buffer[3];

		TScreen_Recieve_Complete_Flag=0;
	}
	else
	{
		TScreen_Recieve_Complete_Flag=0;
	}
}

void TScreen_Start_Timer(uinteg8_t Timer_Num)
{
   switch(Timer_Num)
  {
    case(0):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,SYSTEM_Register_Write,T_SCREEN_TIM0_CTR_ADDRESS,T_SCREEN_TIMER_DOWEN_COUNT,T_SCREEN_VAR_SIZE_1);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
    case(1):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,SYSTEM_Register_Write,T_SCREEN_TIM1_CTR_ADDRESS,T_SCREEN_TIMER_UP_COUNT,T_SCREEN_VAR_SIZE_1);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
    case(2):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,SYSTEM_Register_Write,T_SCREEN_TIM2_CTR_ADDRESS,T_SCREEN_TIMER_UP_COUNT,T_SCREEN_VAR_SIZE_1);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
    case(3):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,SYSTEM_Register_Write,T_SCREEN_TIM3_CTR_ADDRESS,T_SCREEN_TIMER_UP_COUNT,T_SCREEN_VAR_SIZE_1);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
    }

}
void TScreen_Stop_Timer()
{
   TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,SYSTEM_Register_Write,T_SCREEN_TIM0_CTR_ADDRESS,T_SCREEN_TIMER_STOP,T_SCREEN_VAR_SIZE_1);
   TScreen_Send_Packet(TScreen_Send_Buffer);
   TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,SYSTEM_Register_Write,T_SCREEN_TIM1_CTR_ADDRESS,T_SCREEN_TIMER_STOP,T_SCREEN_VAR_SIZE_1);
   TScreen_Send_Packet(TScreen_Send_Buffer);


}
void TScreen_Read_Timer_value(uinteg8_t Timer_Num)
{
	switch(Timer_Num)
	{
     case(0):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_READ,T_SCREEN_TIM0_VAR_ADDRESS,T_SCREEN_NO_DATA,T_SCREEN_NO_DATA);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
     case(1):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_READ,T_SCREEN_TIM1_VAR_ADDRESS,T_SCREEN_NO_DATA,T_SCREEN_NO_DATA);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
     case(2):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_READ,T_SCREEN_TIM2_VAR_ADDRESS,T_SCREEN_NO_DATA,T_SCREEN_NO_DATA);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
     case(3):
        TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_READ,T_SCREEN_TIM3_VAR_ADDRESS,T_SCREEN_NO_DATA,T_SCREEN_NO_DATA);
        TScreen_Send_Packet(TScreen_Send_Buffer);
        break;
	}

}
void TScreen_Write_Timer_value(uinteg32_t Timer_Value,uinteg8_t Timer_Num)
{
    switch(Timer_Num)
    {
        case(0):
            TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_WRITE,T_SCREEN_TIM0_VAR_ADDRESS,Timer_Value,T_SCREEN_VAR_SIZE_4);
            TScreen_Send_Packet(TScreen_Send_Buffer);
            break;
        case(1):
            TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_WRITE,T_SCREEN_TIM1_VAR_ADDRESS,Timer_Value,T_SCREEN_VAR_SIZE_4);
            TScreen_Send_Packet(TScreen_Send_Buffer);
            break;
        case(2):
            TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_WRITE,T_SCREEN_TIM2_VAR_ADDRESS,Timer_Value,T_SCREEN_VAR_SIZE_4);
            TScreen_Send_Packet(TScreen_Send_Buffer);
            break;
        case(3):
            TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_WRITE,T_SCREEN_TIM3_VAR_ADDRESS,Timer_Value,T_SCREEN_VAR_SIZE_4);
            TScreen_Send_Packet(TScreen_Send_Buffer);
            break;

    }
}
void TScreen_Disable_Item(uinteg32_t Item_Address){
	TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N16_WRITE,Item_Address,(uinteg16_t)0x0000,T_SCREEN_VAR_SIZE_2);
	TScreen_Send_Packet(TScreen_Send_Buffer);

}
void TScreen_Enable_Item(uinteg32_t Item_Address){
		TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N16_WRITE,Item_Address,(uinteg16_t)0x0001,T_SCREEN_VAR_SIZE_2);
        TScreen_Send_Packet(TScreen_Send_Buffer);
}
void TScreen_Chang_Page(uinteg8_t U8_PageNum)
{
	TScreen_GenerateConfig_Status_Functions_packet(TScreen_Send_Buffer,DISP_PAGE,(uinteg64_t)U8_PageNum,T_SCREEN_VAR_SIZE_2);
	TScreen_Send_Packet(TScreen_Send_Buffer);
}
void TScreen_Write_Var16(uinteg16_t U16_Value,uinteg32_t Address)
{
	TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N16_WRITE,Address,(uinteg16_t)U16_Value,T_SCREEN_VAR_SIZE_2);
	TScreen_Send_Packet(TScreen_Send_Buffer);

}
void TScreen_Write_Var32(uinteg16_t U32_Value,uinteg32_t Address)
{
	TScreen_Generate_VpFunctions_packet(TScreen_Send_Buffer,N32_WRITE,Address,(uinteg16_t)U32_Value,T_SCREEN_VAR_SIZE_4);
	TScreen_Send_Packet(TScreen_Send_Buffer);

}

 

Video

Codes

Downloads

Smart-LCD-Module-on-electronic-scale Download

Institute / Organization

National Telecommunication Institute NTI
Comments
Ad