Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of GT511C3test by
Revision 2:34a647292050, committed 2014-01-03
- Comitter:
- tosihisa
- Date:
- Fri Jan 03 07:24:39 2014 +0000
- Parent:
- 1:4a1be9379e92
- Child:
- 3:459a4f985a45
- Commit message:
- ??ON/OFF????;
Changed in this revision
--- a/GT511C3.cpp Fri Jan 03 06:34:26 2014 +0000
+++ b/GT511C3.cpp Fri Jan 03 07:24:39 2014 +0000
@@ -35,7 +35,7 @@
while(!writeable());
putc(sendbuf[i]);
}
- return idx;
+ return 0;
}
int GT511C3::RecvResponse(unsigned long *Parameter,unsigned short *Response)
@@ -74,6 +74,16 @@
return 0;
}
+int GT511C3::SendRecv(unsigned short Command,unsigned long *Parameter,unsigned short *Response)
+{
+ int sts;
+ sts = SendCommand(*Parameter,Command);
+ if(sts == 0){
+ sts = RecvResponse(Parameter,Response);
+ }
+ return sts;
+}
+
int GT511C3::ClearLine(void)
{
while(readable()){
@@ -82,3 +92,18 @@
return 0;
}
+int GT511C3::WaitPress(void)
+{
+ unsigned long Parameter = 0;
+ unsigned short Response = 0;
+ int sts = 0;
+
+ while(1){
+ sts = SendRecv(CMD_IsPressFinger,&Parameter,&Response);
+ if(sts != 0)
+ break;
+ if((Response == CMD_Ack) && (Parameter == 0))
+ break;
+ }
+ return sts;
+}
--- a/GT511C3.h Fri Jan 03 06:34:26 2014 +0000
+++ b/GT511C3.h Fri Jan 03 07:24:39 2014 +0000
@@ -60,5 +60,7 @@
int Init(void);
int SendCommand(unsigned long Parameter,unsigned short Command);
int RecvResponse(unsigned long *Parameter,unsigned short *Response);
+ int SendRecv(unsigned short Command,unsigned long *Parameter,unsigned short *Response);
int ClearLine(void);
+ int WaitPress(void);
};
--- a/main.cpp Fri Jan 03 06:34:26 2014 +0000
+++ b/main.cpp Fri Jan 03 07:24:39 2014 +0000
@@ -6,11 +6,31 @@
DigitalOut myled(LED1);
GT511C3 finger(p28,p27);
+int Enroll(void)
+{
+ int EnrollID = 10;
+ unsigned long Parameter = 0;
+ unsigned short Response = 0;
+ int sts = 0;
+
+ debug.printf("CMD_EnrollStart\n");
+ Parameter = EnrollID;
+ sts = finger.SendRecv(GT511C3::CMD_EnrollStart,&Parameter,&Response);
+ debug.printf("sts = %d,Response=0x%04x Parameter=0x%08lx\n",sts,Response,Parameter);
+ if(sts != 0)
+ return sts;
+ if(Response != GT511C3::CMD_Ack)
+ return -100;
+ //
+ return sts;
+}
+
int main() {
unsigned long Parameter;
unsigned short Response;
int sts = 0;
int count = 0;
+ int ispress;
debug.format(8,Serial::None,1);
debug.baud(115200);
@@ -18,19 +38,29 @@
debug.printf("Init\n");
finger.Init();
debug.printf("Open\n");
- finger.SendCommand(0,GT511C3::CMD_Open);
- sts = finger.RecvResponse(&Parameter,&Response);
+ Parameter = 0;
+ sts = finger.SendRecv(GT511C3::CMD_Open,&Parameter,&Response);
debug.printf("sts = %d,Response=0x%04x\n",sts,Response);
+ Parameter = 1;
+ sts = finger.SendRecv(GT511C3::CMD_CmosLed,&Parameter,&Response);
+ debug.printf("sts = %d,Response=0x%04x\n",sts,Response);
while(1) {
- debug.printf("Led\n");
- finger.SendCommand(count & 1,GT511C3::CMD_CmosLed);
- sts = finger.RecvResponse(&Parameter,&Response);
- debug.printf("sts = %d,Response=0x%04x\n",sts,Response);
+ ispress = 0;
+ Parameter = 0;
+ sts = finger.SendRecv(GT511C3::CMD_IsPressFinger,&Parameter,&Response);
+ debug.printf("sts = %d,Response=0x%04x Parameter=0x%08lx\n",sts,Response,Parameter);
+ if(sts == 0){
+ if((Response == GT511C3::CMD_Ack) && (Parameter == 0)){
+ ispress = 1;
+ }
+ }
+#if 0
myled = 1;
wait(0.5);
myled = 0;
wait(0.5);
+#endif
count++;
}
}
