project van rtos

Dependencies:   mbed-os

Fork of MFRC522 by Martin Olejar

main.cpp

Committer:
Onon
Date:
2018-05-08
Revision:
3:80837b470692
Parent:
2:c719944e080b
Child:
4:325954591d0f

File content as of revision 3:80837b470692:


#include "mbed.h"
#include "MFRC522.h"

//KL25Z Pins for MFRC522 SPI interface
#define SPI_MOSI    p5
#define SPI_MISO    p6
#define SPI_SCLK    p7
#define SPI_CS      p9
// KL25Z Pin for MFRC522 reset
#define MF_RESET    p8
/**
// KL25Z Pins for Debug UART port
#define UART_RX     gnd
#define UART_TX     gnd

Serial     DebugUART(UART_TX, UART_RX);
**/
MFRC522 RfChip(SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
Serial pc(USBTX, USBRX);

DigitalOut led(LED1);
DigitalOut dg0(p27);
DigitalOut dg1(p28);
DigitalOut dg2(p29);
DigitalOut dg3(p30);

DigitalOut da(p26);
DigitalOut db(p25);
DigitalOut dc(p24);
DigitalOut dd(p23);
DigitalOut de(p22);
DigitalOut df(p21);
DigitalOut dg(p19);
DigitalOut ddp(p18);

AnalogIn a0(p20);

int sevenSeg;

void light7Seg(int nr, int output) {
    da = 0;
    db = 0;
    dc = 0;
    dd = 0;
    de = 0;
    df = 0;
    dg = 0;
    ddp = 0;
    dg0 = 1;
    dg1 = 1;
    dg2 = 1;
    dg3 = 1;
    switch(output) {
        case 0:
            dg0 = 0;
            break;
        case 1:
            dg1 = 0;
            break;
        case 2:
            dg2 = 0;
            break;
        case 3:
            dg3 = 0;
            ddp = 1;
            break;
        default:
            break;
    }
    switch(nr) {
        case 0:
            da = 1;
            db = 1;
            dc = 1;
            dd = 1;
            de = 1;
            df = 1;
            dg = 0;
            break;
        case 1:
            da = 0;
            db = 1;
            dc = 1;
            dd = 0;
            de = 0;
            df = 0;
            dg = 0;
            break;
        case 2:
            da = 1;
            db = 1;
            dc = 0;
            dd = 1;
            de = 1;
            df = 0;
            dg = 1;
            break;
        case 3:
            da = 1;
            db = 1;
            dc = 1;
            dd = 1;
            de = 0;
            df = 0;
            dg = 1;
            break;
        case 4:
            da = 0;
            db = 1;
            dc = 1;
            dd = 0;
            de = 0;
            df = 1;
            dg = 1;
            break;
        case 5:
            da = 1;
            db = 0;
            dc = 1;
            dd = 1;
            de = 0;
            df = 1;
            dg = 1;
            break;
        case 6:
            da = 1;
            db = 0;
            dc = 1;
            dd = 1;
            de = 1;
            df = 1;
            dg = 1;
            break;
        case 7:
            da = 1;
            db = 1;
            dc = 1;
            dd = 0;
            de = 0;
            df = 0;
            dg = 0;
            break;
        case 8:
            da = 1;
            db = 1;
            dc = 1;
            dd = 1;
            de = 1;
            df = 1;
            dg = 1;
            break;
        case 9:
            da = 1;
            db = 1;
            dc = 1;
            dd = 1;
            de = 0;
            df = 1;
            dg = 1;
            break;
        case 10:
            da = 1;
            db = 1;
            dc = 1;
            dd = 0;
            de = 1;
            df = 1;
            dg = 1;
            break;
        case 11:
            da = 0;
            db = 0;
            dc = 1;
            dd = 1;
            de = 1;
            df = 1;
            dg = 1;
            break;
        case 12:
            da = 1;
            db = 0;
            dc = 0;
            dd = 1;
            de = 1;
            df = 1;
            dg = 0;
            break;
        case 13:
            da = 0;
            db = 1;
            dc = 1;
            dd = 1;
            de = 1;
            df = 0;
            dg = 1;
            break;
        case 14:
            da = 1;
            db = 0;
            dc = 0;
            dd = 1;
            de = 1;
            df = 1;
            dg = 1;
            break;
        case 15:
            da = 1;
            db = 0;
            dc = 0;
            dd = 0;
            de = 1;
            df = 1;
            dg = 1;
            break;
        default:
            da = 0;
            db = 0;
            dc = 0;
            dd = 0;
            de = 0;
            df = 0;
            dg = 0;
            ddp = 0;     
    }
}

void displayNumber7Seg(float nr) {
    nr *= 1000;
    int nrint = (int) nr;
    int digits[4];
    int i = 3;
    while (nrint > 0) {
        int digit = nrint % 10;
        digits[i] = digit;
        if(i == 0) {
            break;    
        }
        i--;
        nrint /= 10;
    }    
    for(int i = 0; i < 4; i++) {
        light7Seg(digits[3-i], i);
        wait_ms(100/24); //60Hz
    }
}

int main(void) {
  pc.printf("Start");
  // Set debug UART speed
  //pc.baud(115200);

  // Init. RC522 Chip
  RfChip.PCD_Init();
  
    dg0 = 0;
    dg1 = 0;
    dg2 = 0;
    dg3 = 0;

  while (true) {
    led = 0;    
    
    displayNumber7Seg(a0.read());

    //printf("%0.4f \n\r", a0.read());
    // Look for new cards
    /*if ( ! RfChip.PICC_IsNewCardPresent())
    {
      wait_ms(500);
      continue;
    }

    // Select one of the cards
    if ( ! RfChip.PICC_ReadCardSerial())
    {
      wait_ms(500);
      continue;
    }

    // Print Card UID
    pc.printf("Card UID: ");
    for (uint8_t i = 0; i < RfChip.uid.size; i++)
    {
      led = 1;
      pc.printf(" %X02", RfChip.uid.uidByte[i]);
    }
    pc.printf("\n\r");

    // Print Card type
    uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
    pc.printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
    wait_ms(1000);
  }*/
}
}