Newer
Older
#include <stdlib.h>
#include <unistd.h>
#include <iostream>
#include <string.h>
const int BYTE_len=4;
const int SPI_CHANNEL=1;
unsigned char rawData[BYTE_len];
unsigned char rawData_delayed[BYTE_len];
float count;
rawData_delayed[0]=0x00;
rawData_delayed[1]=0x00;
rawData_delayed[2]=0x00;
rawData_delayed[3]=0x00;
if (wiringPiSetup() == -1) {
printf("WiringPiSetup failed\n");
exit(EXIT_FAILURE);
}
//memset(rawData,0x01,BYTE_len);
//rawData[0]=0x0F;
rawData[3]=0x00;
rawData[2]=0x00;
rawData[1]=0x00;
rawData[0]=0x00;
int fd = wiringPiSPISetup(SPI_CHANNEL, 500000);
//for (int i=0; i<4; i++){
//printf("%02X \n", rawData[i]);
int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len);
printf("\r%d %d %d %d", rawData[0], rawData[1], rawData[2], rawData[3]);
fflush(stdout);
count=(rawData[0]*pow(16, 4))+(rawData[1]*pow(16, 2))+(rawData[2]*pow(16, 0));
speed=freq*(2*3.1415/res)*(count-count_delayed);
//printf("\r%lf", count);
//fflush(stdout);
count_delayed=count;
//printf("\n");