Micro Controller Data Type Help
#include "sfr62p.h"
typedef struct{ unsigned int data:8;
unsigned int unread:1;
unsigned int live:1;
} key;
key button;
void keyscan(void)
{
static unsigned char pattern;
static unsigned char keys;
static unsigned char masked;
static unsigned char autorepeat;
static _Bool first=1;
static _Bool debouncing=1;
button.live=0;
keys=P8;
masked=keys&0x1C;
if(masked!=0x1C) // has button been pushed
{
if(debouncing) // is this the first push
{
debouncing=0;
first=1;
autorepeat=1;
if( ( pattern=P8&0x1C)==0x18 ) //wich button has pushed
button.data='A'; // pressed ??
else if( pattern==0x14)
button.data='B';
else if( pattern==0x0C)
button.data='C';
else
button.live=0;
}
else
{
if ( autorepeat--==0)
{
keys=P8&0x1C;
if(keys==pattern)
{
button.live=1;
if(first)
{
first=0;
autorepeat=40; // 1 second wait
}
else
{
autorepeat=10; // 250ms between characters
}
}
else
{
debouncing=1;
button.live=0;
first=1;
}
}
}
}
else
{
debouncing=1;
button.live=0;
first=1;
}
if(button.live)
button.unread=1;
}
char getcommand(void)
{
char command;
if(button.unread)
command=button.data;
else
command='X';
button.unread=0;
return(command);
}
Assignment Help | Micro Controller Data Type Help | Micro Controller Data Type Assignment Help | Micro Controller Data Type Online Help | Online Tutoring | Sample Homework
- 24 x 7 Availability
- Plagiarism Free
- Trained and Certified Experts.
- Deadline Guaranteed
- Privacy Guaranteed
- Assignment Help Reward
- Online help for all project.
- Service for everyone
- Online Tutoring
- Free download.
- Free study help whitepapers
- Assignment Help
- Homework Help
- Writing Help
- Academic Writing Assistance
- Editing Services
- Plagiarism Checker Online
- Proofreading
- Research Writing Help
- Services