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: yoda2.h
- Revision:
- 19:0356e54240cc
- Parent:
- 18:e6ed582f7022
- Child:
- 20:ec9d4f6a16ac
diff -r e6ed582f7022 -r 0356e54240cc yoda2.h --- a/yoda2.h Sat Jul 20 03:57:26 2019 +0000 +++ b/yoda2.h Tue Sep 24 14:05:58 2019 +0000 @@ -1,3 +1,23 @@ +//#define RASPBERRY_PI_CAN_ADDRESS 0x01 +#define YODA2 +#define RASPBERRY_PI_CAN_TYPE 0x07 +#define RASPBERRY_PI_CAN_ID 0x01 +#define RASPBERRY_PI_CAN_ADDRESS ((RASPBERRY_PI_CAN_TYPE<<8) | RASPBERRY_PI_CAN_ID) + +#ifdef OWN_SOLDER_BOARD +#define BUTTON1 PB_4 // right // up +#define BUTTON2 PC_1 // left // down +#define BUTTON3 PC_7 // enter // next +#define BUTTON4 PA_9 // menu // back +#endif + +#ifdef YODA2 +#define BUTTON1 PA_8 // right // up +#define BUTTON2 PB_10 // left // down +#define BUTTON3 PB_4 // enter // next +#define BUTTON4 PB_5 // menu // back +#endif + #define BUTTON1_HOLD_EVENT 0x0001 #define BUTTON1_PRESSED_EVENT 0x0002 #define BUTTON2_HOLD_EVENT 0x0004 @@ -6,14 +26,14 @@ #define BUTTON3_PRESSED_EVENT 0x0020 #define BUTTON4_HOLD_EVENT 0x0040 #define BUTTON4_PRESSED_EVENT 0x0080 -#define MENU_HOLD_EVENT BUTTON4_HOLD_EVENT -#define MENU_PRESSED_EVENT BUTTON4_PRESSED_EVENT -#define ENTER_HOLD_EVENT BUTTON3_HOLD_EVENT -#define ENTER_PRESSED_EVENT BUTTON3_PRESSED_EVENT -#define LEFT_HOLD_EVENT BUTTON2_HOLD_EVENT -#define LEFT_PRESSED_EVENT BUTTON2_PRESSED_EVENT -#define RIGHT_HOLD_EVENT BUTTON1_HOLD_EVENT -#define RIGHT_PRESSED_EVENT BUTTON1_PRESSED_EVENT +#define NEXT_HOLD_EVENT BUTTON4_HOLD_EVENT +#define NEXT_PRESSED_EVENT BUTTON4_PRESSED_EVENT +#define BACK_HOLD_EVENT BUTTON3_HOLD_EVENT +#define BACK_PRESSED_EVENT BUTTON3_PRESSED_EVENT +#define DOWN_HOLD_EVENT BUTTON2_HOLD_EVENT +#define DOWN_PRESSED_EVENT BUTTON2_PRESSED_EVENT +#define UP_HOLD_EVENT BUTTON1_HOLD_EVENT +#define UP_PRESSED_EVENT BUTTON1_PRESSED_EVENT #define LCD_DISPLAY_HOLD_EVENT 0x0001 #define LCD_DISPLAY_RELEASE_EVENT 0x0002 @@ -30,6 +50,7 @@ #define COMMAND_POUR_TEA 10 // for the device to pour the tea return done or failed #define COMMAND_FINISH 11 // for everything finished return done or failed #define COMMAND_RESET 12 // for the devices return to the point 0 and clean themselvies +#define COMMAND_REGISTER 13 // for device to register itself to raspberry pi #define WEIGHT_DIFFERENCE 200 // 10g ADC value minimum difference @@ -37,6 +58,35 @@ #define MAXIMUM_CALIBRATION_WEIGHT 5000 #define MINIMUM_CALIBRATION_WEIGHT 100 +#ifdef OWN_SOLDER_BOARD +#define EEPROM_ADDR 0x0 // I2c EEPROM address is 0x00 +#endif +#ifdef YODA2 +#define EEPROM_ADDR 0x57 +#endif +#ifdef STM32F207xx +#define SDA PB_9 // I2C SDA pin +#define SCL PB_8 // I2C SCL pin +#endif + +#ifdef STM32F303xE +#ifdef OWN_SOLDER_BOARD +#define SDA PC_9//D2//D2//PB_9 //PF_0 // I2C SDA pin +#define SCL D7//D8//D8//PB_8 //PF_1 // I2C SCL pin +#endif +#ifdef YODA2 +#define SDA PA_10//D2//D2//PB_9 //PF_0 // I2C SDA pin +#define SCL PA_9//D8//D8//PB_8 //PF_1 // I2C SCL pin +#endif +#endif + +#define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) +#define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) + +#define EEPROM_DEVICE_ADDRESS_ADDRESS 0x40 +#define DEVICE_DEFAULT_ADDRESS 12 + + enum Device_Type_d { CupTrack=0, @@ -44,7 +94,8 @@ TeaTrack=2, Tea=3, Jam=4, - Shaker=5 + Shaker=5, + IceMaker=6 }; struct ScaleCalibrationData { @@ -52,4 +103,12 @@ long offsetValue; // the value for scale offset float scaleValue; // the ADC increment for 1g uint8_t checksum; -}; \ No newline at end of file +}; + +// because memcpy is 16 byte alignment no byte in struct +struct data_field_d { + uint16_t cmd; + uint16_t value1; + uint16_t value2; + uint16_t value3; +};