コード例 #1
0
ファイル: adc.c プロジェクト: lalithr95/RTOS-C
void main(void) {
	init_lcd();
	A0 = 0;
	A1 = 0;
	A2 = 0;
	START = 0;
	ALE = 0;
	display_lcd("Data ");
	while(1) {
		cmd_lcd(0xc0);
		START = 1;
		ALE = 0;
		START = 0;
		while(EOC == 0);
		float_lcd(VREF * ADC/MAX_REF);
		display_lcd(" volts");
		delay_ms(1000);
	}
}
コード例 #2
0
void main()
{

    init();
    ES=1;
    EA=1;
    P0=0xFF;
    initialize();
    Sensor=1;

    display_lcd(0x80, "   reset  ");
    delay(1000);

    while(1)
    {
        display_lcd(0x80, "  In while loop  ");
        if(Sensor==0)
        {
            /*sendMessage();
            display_lcd(0x80, "   Message  ");
            display_lcd(0xC0, "    Sent   ");

            delay(1000);  */

            phoneCall();

            display_lcd(0x80, "phone call");
            display_lcd(0xC0, "           ");
            delay(5000);
            continue;
        }
    }
    display_lcd(0x80, "   breaked ");

    delay(1000);

}
コード例 #3
0
ファイル: random-lcd.c プロジェクト: StylonWang/lcd-12864
int main(int argc, char **argv)
{
    int ret;
    int fd;

    char clr[] = {0x80};
    char backlight[] = {0x8A, 30};

    #define CMD(x) { x, sizeof(x) }
    struct { char *cmd; int len; } 
        cmd[] = {
                    CMD(clr),
                    CMD(backlight),
                };

    ssize_t sz;
    uint8_t mode = SPI_CPHA|SPI_CPOL; // clock high active, latch on rising edge
    uint8_t bits = 8;
    uint32_t speed = 500000;
    int i;
    int count=0, total_count=0;
    struct timeval tv1, tv2;

    srand(time(NULL));

    ret = wiringPiSetup();
    if(ret) {
        printf("wiringPi set up failed: %d\n", ret);
        exit(1);
    }

    // physical pin #24 on Bananpi
    // man gpio for pin mapping.
    pinMode(6, 1);  // set to output mode

    // reset LCD
    digitalWrite(6, 1);
    usleep(1*1000);
    digitalWrite(6, 0);
    usleep(4*1000); // >2ms
    digitalWrite(6, 1);
    usleep(20*1000); // >10ms

    fd = open("/dev/spidev0.0", O_RDWR);
    if(fd<0) {
        printf("open device failed: %s\n", strerror(errno));
    }

    // set SPI mode
	ret = ioctl(fd, SPI_IOC_WR_MODE, &mode);
	if (ret == -1) {
        printf("cannot set SPI mode: %s\n", strerror(errno));
        exit(1);
    } 

    // set bits per word
	ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
	if (ret == -1) {
        printf("cannot set bits per word: %s\n", strerror(errno));
        exit(1);
    }

    // set speed
	ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
	if (ret == -1) {
        printf("cannot set speed: %s\n", strerror(errno));
        exit(1);
    }

    for(i=0; i<sizeof(cmd)/sizeof(cmd[0]); ++i) {
        printf("execute cmd %d\n", i);

        sz = write(fd, cmd[i].cmd, cmd[i].len);
        if(sz<0) {
            printf("write cmd[%d]-%d failed: %s\n", i, cmd[i].len, strerror(errno));
            break;
        }

        usleep(1*1000); // no busy flag, 1ms might be safe
    }

    gettimeofday(&tv1, NULL);

    while(1) {
        count++;
        total_count++;

        switch(count%3) {

        case 0:
            random_draw_lcd();
            display_lcd(fd);
            break;

        case 1:
            horizontal_line_draw_lcd();
            display_lcd(fd);
            break;

        case 2:
            vertical_line_draw_lcd();
            display_lcd(fd);
            break;

        }

        // get FPS
        if(count>=100) {
            unsigned long milisec;

            gettimeofday(&tv2, NULL);
            milisec = (tv2.tv_sec-tv1.tv_sec)*1000;
            if(tv2.tv_usec>tv1.tv_usec) {
                milisec += (tv2.tv_usec-tv1.tv_usec)/1000;
            }
            else {
                milisec -= 1000;
                milisec += (tv2.tv_usec/1000)+1000 - (tv1.tv_usec)/1000;
            }
            printf("FPS: %2.2f, %d frames passed\n", 
                    (float)count/(milisec+1)*1000,
                    total_count
                    );

            count = 0;
            gettimeofday(&tv1, NULL);
        }
    }

    close(fd);

    return 0;
}
コード例 #4
0
ファイル: MAIN.C プロジェクト: dc-iiitdm/ELE401codes
/**MAIN FUNCTION**/
void main()
{
		/** LOCAL VARIABLES DECLARATION **/
		unsigned char x;
		sys_init();
		while(1)
		{
			cmd_lcd(0X01);			
			cmd_lcd(0X80);
			display_lcd("Waiting For Card....");
			i=0;
			r_flag=0;
			while(!r_flag);
					
			if(!(strcmp(buff,"Enter password:"******"card is inserted");
				cmd_lcd(0xc0);
				display_lcd("Processing......");
				delay_ms(500); 
				print("AAA\n");//SENDING PASSWORD
				r_flag=0;		
				while(!r_flag);//WAITING FOR REPLY
				cmd_lcd(0xc0);
				i=0;	r_flag=0;
				display_lcd(buff);
			
				while(!r_flag);//WAITING FOR REPLY
				cmd_lcd(0x94);
				display_lcd(buff);
				print("READ 32 5\n");	//READ DATA FROM SMARTCARD
				r_flag=0;
				while(!r_flag);//WAITING FOR REPLY
		
				cmd_lcd(0x01);
				display_lcd(buff);
				delay_ms(500);

				if(!(strcmp(buff,s_pass1)))
				{
					cmd_lcd(0x80);
					display_lcd("* UR CARD IS VALID *");
					for(n=0;n<5;n++)
					{	
						green=1;
						delay_ms(100);
						green=0;
						delay_ms(100);
					}
					cmd_lcd(0x94);
					display_lcd("Pls remove Card.....");
					r_flag=0;i=0;buff[0]='\0';
					while(!r_flag);//WAITING FOR REPLY
					cmd_lcd(0xc0);
					display_lcd(buff);
					delay_ms(700);
		m:			cmd_lcd(0x01);		
					cmd_lcd(0x80);
					display_lcd("1:    PAN CARD INFO.");		
					cmd_lcd(0xC0);
					display_lcd("2:    ATM TERMINAL  ");		
					cmd_lcd(0x94);		
					display_lcd("3:    VOTING SYSTEM ");
					cmd_lcd(0xd4);		
					display_lcd("4:      EXIT        ");   
					do
					{
					
						x=key();	//WAITINF FOR KEY PRESSING
					
					}while((x!='1')&&(x!='2')&&(x!='3')&&(x!='4'));
				
					if(x=='1')			
						pancard_info();	//PERSONAL INFROMATION
					else if(x=='2')
						atm_terminal();
					else if(x=='3')
					    voting();   //VOTING CARD SYSTEM   
					else if(x=='4')
					    continue;
					goto m;
				}
				else if(!(strcmp(buff,s_pass2)))
				{
					cmd_lcd(0x80);
					display_lcd("* UR CARD IS VALID *");
					for(n=0;n<5;n++)
					{	
						green=1;
						delay_ms(100);
						green=0;
						delay_ms(100);
					}
					cmd_lcd(0x94);
					display_lcd("Pls remove Card.....");
					r_flag=0;i=0;buff[0]='\0';
					while(!r_flag);//WAITING FOR REPLY
					cmd_lcd(0xc0);
					display_lcd(buff);
					delay_ms(700);
					reset_voting();
				}
				else
				{
					cmd_lcd(0x80);
					display_lcd("*UR CARD IS INVALID*");
					for(n=0;n<5;n++)
					{
						buzzer=1;
						delay_ms(100);
						buzzer=0;
						delay_ms(100);
					}
					cmd_lcd(0x94);
					display_lcd("Pls remove Card.");
					r_flag=0;
					while(!r_flag);//WAITING FOR REPLY
					cmd_lcd(0xc0);
					display_lcd(buff);
					delay_ms(700);
				}	
			}
			else
			{
			
		    	cmd_lcd(0x01); 
		      	cmd_lcd(0x80);
		    	display_lcd("PLEASE INSERT CARD");
			    cmd_lcd(0xC0);
			    display_lcd("      PROPERLY      "); 
	    		delay_ms(1000);                    
			    cmd_lcd(0x01);
		    	cmd_lcd(0x94);
	    		display_lcd("Pls Remove Card.....");  
    			r_flag=0; 
	   	
	   			while(!r_flag); 
		        cmd_lcd(0xd4);
	   			display_lcd(buff);  
		        delay_ms(500);
	   		}

		
			
	}	//main while loop end
	
}	//main loop end