main.cpp is a direct example, waits for an input and then process it. test.cpp is modified, only process when there's a pressure
Fork of GT511C3test by
main.cpp
- Committer:
- tosihisa
- Date:
- 2014-01-03
- Revision:
- 4:3dd0f98e6f09
- Parent:
- 3:459a4f985a45
- Child:
- 5:d3ebe6d1ed92
File content as of revision 4:3dd0f98e6f09:
#include "mbed.h" #include "GT511C3.h" Serial debug(USBTX,USBRX); 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("EnrollStart\n"); finger.CmosLed(1); while(1){ 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; debug.printf("Remove finger\n"); finger.WaitPress(0); while(1){ debug.printf("Press finger to Enroll (1st)\n"); finger.WaitPress(1); if(finger.Capture(1) == 0) break; } debug.printf("Remove finger\n"); if(finger.Enroll_N(1) != 0) continue; finger.WaitPress(0); while(1){ debug.printf("Press finger to Enroll (2nd)\n"); finger.WaitPress(1); if(finger.Capture(1) == 0) break; } debug.printf("Remove finger\n"); if(finger.Enroll_N(2) != 0) continue; finger.WaitPress(0); while(1){ debug.printf("Press finger to Enroll (3rd)\n"); finger.WaitPress(1); if(finger.Capture(1) == 0) break; } debug.printf("Remove finger\n"); if(finger.Enroll_N(3) != 0) continue; finger.WaitPress(0); debug.printf("Enroll OK!\n"); break; } return 0; } int main() { int sts = 0; int ispress = 0; int ID = 0; debug.format(8,Serial::None,1); debug.baud(115200); debug.printf("Open\n"); sts = finger.Open(); debug.printf("sts = %d\n",sts); if(sts == 0){ int i; debug.printf("FirmwareVersion = %lx\n",finger.FirmwareVersion); debug.printf("IsoAreaMaxSize = %ld\n",finger.IsoAreaMaxSize); debug.printf("DeviceSerialNumber = "); for(i = 0; i < sizeof(finger.DeviceSerialNumber);i++){ debug.printf("%02X",finger.DeviceSerialNumber[i]); } debug.printf("\n"); } if(1){ Enroll(); } finger.CmosLed(1); while(1) { ispress = finger.IsPress(); debug.printf("IsPressFinger=%d\n",ispress); if(ispress){ if(finger.Capture(1) != 0) continue; ID = finger.Identify(); debug.printf("ID = %d\n",ID); } } }