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.
Diff: main.cpp
- Revision:
- 1:fe3f80c4beeb
- Parent:
- 0:0311bb0b38f7
- Child:
- 2:3459b9282009
diff -r 0311bb0b38f7 -r fe3f80c4beeb main.cpp
--- a/main.cpp Mon Sep 09 00:16:13 2019 +0000
+++ b/main.cpp Wed Sep 18 00:22:34 2019 +0000
@@ -58,6 +58,7 @@
I2C i2c(SDA,SCL);
SO1602A oled(i2c,0x78);
+
//********** pin select **********//
//********** define **********//
@@ -69,14 +70,15 @@
#define SENSORDATA_SIZE 48
const int pinDef[48] = { 0, 1, 2, 3, 4, 5,
- 12,13,14,15, 7, 6,
- 22,23, 8, 9,10,11,
- 16,17,18,19,20,21,
- 27,26,25,24,40,41,
- 28,29,30,31,38,39,
- 32,33,34,35,36,37,
- 42,43,44,45,36,47};
-
+ 12,13,14,15, 7, 6,
+ 22,23, 8, 9,10,11,
+ 16,17,18,19,20,21,
+ 27,26,25,24,40,41,
+ 28,29,30,31,38,39,
+ 32,33,34,35,36,37,
+ 42,43,44,45,36,47
+ };
+
const int weight[6] = { 2, 1, 0, 0,-1,-2};
char send[SENDDATA_SIZE] = {60,77,80,55,65,68,90,87};
@@ -89,35 +91,51 @@
void SendDataMake(bool sensorData[], char sendData[]);
//********** define **********//
-void InitiaLize(void)
+void InitiaLize(void)
{
uartSE = 1; //送信固定
-
+
uart.baud(9600);
uart.attach(Transmit,Serial::TxIrq);
}
-int main(void)
+int main(void)
{
InitiaLize();
-
- while(1)
- {
+ oled.init();
+ oled.setDispFlag(true,false,false);
+ while(1) {
+ if(send[2]>250) {
+ oled.locate(0,0);
+ oled.printf("%d",send[2]-256);
+ } else {
+ oled.locate(0,0);
+ oled.printf("%2d",send[2]);
+ }
+ if(send[3]>250) {
+ oled.locate(5,0);
+ oled.printf("%d",send[3]-256);
+ } else {
+ oled.locate(5,0);
+ oled.printf("%2d",send[3]);
+ }
LineDataRead(line,SENSORDATA_SIZE);
SendDataMake(line,send);
SendDataUpdate(send,SENDDATA_SIZE);
}
}
-void Transmit() {
+void Transmit()
+{
__disable_irq();
//uart.printf("%d\n\r",RS485uart.GetData());
uart.putc(RS485uart.GetData());
__enable_irq();
-
+
}
-void SendDataUpdate(char sendData[], int dataSize) {
+void SendDataUpdate(char sendData[], int dataSize)
+{
__disable_irq();
if(!RS485uart.InAnyData()) {
RS485uart.PutData('S');
@@ -126,10 +144,11 @@
}
RS485uart.PutData('F');
}
- __enable_irq();
+ __enable_irq();
}
-void PinSelect(int pin) {
+void PinSelect(int pin)
+{
bool selectnum[16][4]= {
{0,0,0,0},
{0,0,0,1},
@@ -178,9 +197,10 @@
}
}
-void LineDataRead(bool sensorData[], int dataSize) {
+void LineDataRead(bool sensorData[], int dataSize)
+{
int pin;
- int readData = 0;
+ int readData = 0;
for(int i = 0; i < dataSize; i++) {
pin = pinDef[i];
PinSelect(pin);
@@ -196,11 +216,12 @@
} else {
sensorData[i] = 1;
}
-
+
}
}
-void SendDataMake(bool sensorData[], char sendData[]) {
+void SendDataMake(bool sensorData[], char sendData[])
+{
int data = 0;
bool ACflag = true;
bool NCflag = true;
@@ -215,8 +236,8 @@
else if(sensorData[count] == 0) NCflag = false;
count++;
}
- if(NCflag) sendData[i] = 'N';
- else if(ACflag) sendData[i] = 'A';
+ if(NCflag) sendData[i] = 99;
+ else if(ACflag) sendData[i] = 98;
else sendData[i] = data;
}
}
\ No newline at end of file