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.
main.cpp@1:037eeb07f3fc, 2020-01-10 (annotated)
- Committer:
- adarsh575
- Date:
- Fri Jan 10 04:19:56 2020 +0000
- Revision:
- 1:037eeb07f3fc
- Parent:
- 0:35581ea6b194
- Child:
- 2:fa941f0137b3
for academic project
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| dewantkatare | 0:35581ea6b194 | 1 | /* mbed Microcontroller Library |
| dewantkatare | 0:35581ea6b194 | 2 | * Copyright (c) 2018 ARM Limited |
| dewantkatare | 0:35581ea6b194 | 3 | * SPDX-License-Identifier: Apache-2.0 |
| dewantkatare | 0:35581ea6b194 | 4 | */ |
| dewantkatare | 0:35581ea6b194 | 5 | |
| dewantkatare | 0:35581ea6b194 | 6 | #include "mbed.h" |
| dewantkatare | 0:35581ea6b194 | 7 | #include "MFRC522.h" |
| dewantkatare | 0:35581ea6b194 | 8 | |
| dewantkatare | 0:35581ea6b194 | 9 | #define SLEEP_TIME 500 // (msec) |
| dewantkatare | 0:35581ea6b194 | 10 | #define PRINT_AFTER_N_LOOPS 20 |
| dewantkatare | 0:35581ea6b194 | 11 | |
| dewantkatare | 0:35581ea6b194 | 12 | // K64F Pin for "MFRC522 (Chip select, Clock, MOSI, MISO, IRQ, Ground, Reset, 3.3V)" |
| dewantkatare | 0:35581ea6b194 | 13 | #define MF_RESET D9 //Reset |
| adarsh575 | 1:037eeb07f3fc | 14 | #define SPI_MOSI p5 //MOSI |
| adarsh575 | 1:037eeb07f3fc | 15 | #define SPI_MISO p6 //MISO |
| adarsh575 | 1:037eeb07f3fc | 16 | #define SPI_SCK p7 //Clock |
| adarsh575 | 1:037eeb07f3fc | 17 | #define SPI_CS p8 //Chip Select |
| dewantkatare | 0:35581ea6b194 | 18 | |
| dewantkatare | 0:35581ea6b194 | 19 | DigitalOut LedGreen(LED1); |
| dewantkatare | 0:35581ea6b194 | 20 | Serial pc(USBTX, USBRX); |
| dewantkatare | 0:35581ea6b194 | 21 | MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); |
| dewantkatare | 0:35581ea6b194 | 22 | |
| dewantkatare | 0:35581ea6b194 | 23 | |
| dewantkatare | 0:35581ea6b194 | 24 | |
| dewantkatare | 0:35581ea6b194 | 25 | |
| dewantkatare | 0:35581ea6b194 | 26 | |
| dewantkatare | 0:35581ea6b194 | 27 | // main() runs in its own thread in the OS |
| dewantkatare | 0:35581ea6b194 | 28 | int main() |
| dewantkatare | 0:35581ea6b194 | 29 | { |
| dewantkatare | 0:35581ea6b194 | 30 | pc.baud(9600); |
| dewantkatare | 0:35581ea6b194 | 31 | pc.printf("\r\n*********************Initialization**********************************"); |
| dewantkatare | 0:35581ea6b194 | 32 | RfChip.PCD_Init(); /* Init. RC522 Chip*/ |
| dewantkatare | 0:35581ea6b194 | 33 | pc.printf("\r\n**********************Starting Reading Tags**************************"); |
| dewantkatare | 0:35581ea6b194 | 34 | |
| dewantkatare | 0:35581ea6b194 | 35 | while (true) { |
| dewantkatare | 0:35581ea6b194 | 36 | LedGreen = 1; |
| dewantkatare | 0:35581ea6b194 | 37 | if ( ! RfChip.PICC_IsNewCardPresent()) |
| dewantkatare | 0:35581ea6b194 | 38 | { |
| dewantkatare | 0:35581ea6b194 | 39 | wait_ms(500); |
| dewantkatare | 0:35581ea6b194 | 40 | continue; |
| dewantkatare | 0:35581ea6b194 | 41 | } |
| dewantkatare | 0:35581ea6b194 | 42 | |
| dewantkatare | 0:35581ea6b194 | 43 | // Select one of the cards |
| dewantkatare | 0:35581ea6b194 | 44 | if (!RfChip.PICC_ReadCardSerial()) |
| dewantkatare | 0:35581ea6b194 | 45 | { |
| dewantkatare | 0:35581ea6b194 | 46 | wait_ms(500); |
| dewantkatare | 0:35581ea6b194 | 47 | pc.printf("\r\nReading a card"); |
| dewantkatare | 0:35581ea6b194 | 48 | continue; |
| dewantkatare | 0:35581ea6b194 | 49 | } |
| dewantkatare | 0:35581ea6b194 | 50 | |
| dewantkatare | 0:35581ea6b194 | 51 | LedGreen = 0; |
| dewantkatare | 0:35581ea6b194 | 52 | |
| dewantkatare | 0:35581ea6b194 | 53 | // Print Card UID |
| dewantkatare | 0:35581ea6b194 | 54 | pc.printf("\r\nCard UID: "); |
| dewantkatare | 0:35581ea6b194 | 55 | for (uint8_t i = 0; i < RfChip.uid.size; i++) |
| dewantkatare | 0:35581ea6b194 | 56 | { |
| dewantkatare | 0:35581ea6b194 | 57 | pc.printf(" %X02", RfChip.uid.uidByte[i]); |
| dewantkatare | 0:35581ea6b194 | 58 | } |
| dewantkatare | 0:35581ea6b194 | 59 | pc.printf("\r\n"); |
| dewantkatare | 0:35581ea6b194 | 60 | |
| dewantkatare | 0:35581ea6b194 | 61 | // Print Card type |
| dewantkatare | 0:35581ea6b194 | 62 | uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); |
| dewantkatare | 0:35581ea6b194 | 63 | pc.printf("PICC Type: %s \r\n", RfChip.PICC_GetTypeName(piccType)); |
| dewantkatare | 0:35581ea6b194 | 64 | wait_ms(1000); |
| dewantkatare | 0:35581ea6b194 | 65 | |
| dewantkatare | 0:35581ea6b194 | 66 | } |
| dewantkatare | 0:35581ea6b194 | 67 | } |