Zeitsteuerung
Fork of timer0 by
rs_485.h
- Committer:
- rs27
- Date:
- 2016-02-05
- Revision:
- 1:8779e76fd4ea
File content as of revision 1:8779e76fd4ea:
#include "mbed.h" #include "MODSERIAL.h" // Schnittstelle für den H-Bus #define RS485_TX2 P2_0 #define RS485_RX2 P2_1 #define RS485_DIR2 P1_4 class rs_485 { private: Timer timeout; // define debounce timer Timeout timeout_out; int tx_timeout1; int tx_timeout2; bool send_end_flag; // Flag für Telegrammende uint8_t rs_aktiv; // 0 inaktiv auf Empfang // 1 aktiv auf Empfang // 2 aktiv im Sendemodus uint8_t rs_aktiv_old; uint8_t t_array[4]; int zeit; public: struct Message { uint8_t STX; // Start byte uint8_t source; // Absender Adresse uint8_t dest; // Ziel Adresse uint8_t len; // Length of data field in bytes uint8_t data[8]; // Data field uint8_t CRC; // CRC uint8_t ETX; // Telegramm Ende uint8_t h; uint8_t m; uint8_t s; uint16_t ms; uint8_t count; // interner Zähler uint8_t sm; // interne Steuerung ( state maschine ) uint8_t error; }; Message msg_out; Message msg_in; rs_485(); void isr_timeout(void); void txEmpty(MODSERIAL_IRQ_INFO *q); uint8_t get_crc(uint8_t *pbuffer, uint8_t count); void msg_print(Message msg); void write(uint8_t *data); void execute(void); void send(void); void receive(void); };