Zeitsteuerung
Fork of timer0 by
Embed:
(wiki syntax)
Show/hide line numbers
rs_485.h
00001 00002 #include "mbed.h" 00003 #include "MODSERIAL.h" 00004 00005 // Schnittstelle für den H-Bus 00006 #define RS485_TX2 P2_0 00007 #define RS485_RX2 P2_1 00008 #define RS485_DIR2 P1_4 00009 00010 class rs_485 { 00011 00012 private: 00013 00014 Timer timeout; // define debounce timer 00015 Timeout timeout_out; 00016 00017 int tx_timeout1; 00018 int tx_timeout2; 00019 00020 bool send_end_flag; // Flag für Telegrammende 00021 uint8_t rs_aktiv; // 0 inaktiv auf Empfang 00022 // 1 aktiv auf Empfang 00023 // 2 aktiv im Sendemodus 00024 uint8_t rs_aktiv_old; 00025 uint8_t t_array[4]; 00026 int zeit; 00027 00028 public: 00029 00030 struct Message { 00031 uint8_t STX; // Start byte 00032 uint8_t source; // Absender Adresse 00033 uint8_t dest; // Ziel Adresse 00034 uint8_t len; // Length of data field in bytes 00035 uint8_t data[8]; // Data field 00036 uint8_t CRC; // CRC 00037 uint8_t ETX; // Telegramm Ende 00038 uint8_t h; 00039 uint8_t m; 00040 uint8_t s; 00041 uint16_t ms; 00042 uint8_t count; // interner Zähler 00043 uint8_t sm; // interne Steuerung ( state maschine ) 00044 uint8_t error; 00045 }; 00046 00047 Message msg_out; 00048 Message msg_in; 00049 00050 rs_485(); 00051 00052 void isr_timeout(void); 00053 void txEmpty(MODSERIAL_IRQ_INFO *q); 00054 uint8_t get_crc(uint8_t *pbuffer, uint8_t count); 00055 void msg_print(Message msg); 00056 void write(uint8_t *data); 00057 void execute(void); 00058 void send(void); 00059 void receive(void); 00060 00061 };
Generated on Mon Jul 25 2022 22:54:58 by 1.7.2