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.
main.cpp@1:7091401482c5, 2014-11-11 (annotated)
- Committer:
- creatron
- Date:
- Tue Nov 11 16:11:21 2014 +0000
- Revision:
- 1:7091401482c5
- Parent:
- 0:044dfba47660
- Child:
- 2:c99c596be3d1
The led flash, the command line receive not dapper, but 1111 set the flag
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
creatron | 0:044dfba47660 | 1 | #include "mbed.h" |
creatron | 0:044dfba47660 | 2 | #include "dlms_comms.h" |
creatron | 0:044dfba47660 | 3 | // instantiate classes |
creatron | 0:044dfba47660 | 4 | Timer timer; |
creatron | 0:044dfba47660 | 5 | // debug serial comms |
creatron | 0:044dfba47660 | 6 | RawSerial debugger(SERIAL_TX, SERIAL_RX); |
creatron | 0:044dfba47660 | 7 | // rs485 comms 2nd uart |
creatron | 0:044dfba47660 | 8 | dlms_comms dlms; |
creatron | 0:044dfba47660 | 9 | |
creatron | 0:044dfba47660 | 10 | DigitalOut myled(LED1); |
creatron | 0:044dfba47660 | 11 | |
creatron | 0:044dfba47660 | 12 | #define POLL_TIME_MS 100 |
creatron | 0:044dfba47660 | 13 | |
creatron | 0:044dfba47660 | 14 | /** ------------------------------------------------------------------------- |
creatron | 0:044dfba47660 | 15 | * @brief the setup routine runs once when you press reset |
creatron | 0:044dfba47660 | 16 | */ |
creatron | 0:044dfba47660 | 17 | void setup(void) |
creatron | 0:044dfba47660 | 18 | { |
creatron | 0:044dfba47660 | 19 | // initialize serial communication at 115200 bits per second: |
creatron | 0:044dfba47660 | 20 | debugger.baud (115200); |
creatron | 0:044dfba47660 | 21 | debugger.format(); |
creatron | 0:044dfba47660 | 22 | debugger.printf ("\r\n\n>> DCU Battery Charger Nov 2014 \r\n"); |
creatron | 0:044dfba47660 | 23 | timer.start(); |
creatron | 0:044dfba47660 | 24 | dlms.init ( &debugger, &timer); |
creatron | 0:044dfba47660 | 25 | dlms.initialise (9600, // baudrate |
creatron | 0:044dfba47660 | 26 | 8, // bits, |
creatron | 0:044dfba47660 | 27 | 'n', // parity |
creatron | 0:044dfba47660 | 28 | 2); // stop_bits |
creatron | 0:044dfba47660 | 29 | debugger.printf (">> Setup Done \r\n"); |
creatron | 0:044dfba47660 | 30 | } |
creatron | 0:044dfba47660 | 31 | /** --------------------------------------------------------------------------- |
creatron | 0:044dfba47660 | 32 | * @brief M A I N |
creatron | 0:044dfba47660 | 33 | */ |
creatron | 0:044dfba47660 | 34 | int main(void) |
creatron | 0:044dfba47660 | 35 | { |
creatron | 0:044dfba47660 | 36 | // timer to do some timing |
creatron | 0:044dfba47660 | 37 | UINT_64 compare_ms = 0l; |
creatron | 0:044dfba47660 | 38 | UINT_64 current_ms; |
creatron | 0:044dfba47660 | 39 | bool direction_485 = false; |
creatron | 0:044dfba47660 | 40 | char ch; |
creatron | 0:044dfba47660 | 41 | |
creatron | 0:044dfba47660 | 42 | // initialise |
creatron | 0:044dfba47660 | 43 | setup(); |
creatron | 0:044dfba47660 | 44 | debugger.printf (">> Demo .. \r\n"); |
creatron | 0:044dfba47660 | 45 | do |
creatron | 0:044dfba47660 | 46 | { |
creatron | 0:044dfba47660 | 47 | current_ms = timer.read_ms(); |
creatron | 0:044dfba47660 | 48 | current_ms -= compare_ms; |
creatron | 0:044dfba47660 | 49 | if (current_ms > POLL_TIME_MS) |
creatron | 0:044dfba47660 | 50 | { |
creatron | 0:044dfba47660 | 51 | compare_ms += POLL_TIME_MS; |
creatron | 0:044dfba47660 | 52 | if (myled) |
creatron | 0:044dfba47660 | 53 | myled = false; |
creatron | 0:044dfba47660 | 54 | else |
creatron | 0:044dfba47660 | 55 | myled = true; |
creatron | 0:044dfba47660 | 56 | } |
creatron | 0:044dfba47660 | 57 | if (direction_485 != dlms.get_dir485()) |
creatron | 0:044dfba47660 | 58 | { |
creatron | 0:044dfba47660 | 59 | direction_485 = dlms.get_dir485(); |
creatron | 0:044dfba47660 | 60 | debugger.printf("\r\nDir Changed "); |
creatron | 0:044dfba47660 | 61 | if (direction_485) |
creatron | 0:044dfba47660 | 62 | debugger.printf("1 \r\n"); |
creatron | 0:044dfba47660 | 63 | else |
creatron | 0:044dfba47660 | 64 | debugger.printf("0 \r\n"); |
creatron | 0:044dfba47660 | 65 | } |
creatron | 1:7091401482c5 | 66 | if (debugger.readable()) |
creatron | 1:7091401482c5 | 67 | { |
creatron | 1:7091401482c5 | 68 | ch = debugger.getc(); |
creatron | 1:7091401482c5 | 69 | switch (ch) |
creatron | 1:7091401482c5 | 70 | { |
creatron | 1:7091401482c5 | 71 | case '1': |
creatron | 1:7091401482c5 | 72 | dlms.send_packet ("\r\nDLMS Test 1 \r\n", 16); |
creatron | 1:7091401482c5 | 73 | break; |
creatron | 1:7091401482c5 | 74 | } |
creatron | 1:7091401482c5 | 75 | //debugger.printf ("ret_irq_count = %ld\r\n", dlms.ret_irq_count()); |
creatron | 1:7091401482c5 | 76 | } |
creatron | 0:044dfba47660 | 77 | // if (dlms.char_available()) |
creatron | 0:044dfba47660 | 78 | // { |
creatron | 0:044dfba47660 | 79 | // debugger.printf("Rx Char "); |
creatron | 0:044dfba47660 | 80 | // debugger.printf("%c\r\n", dlms.get_char()); |
creatron | 0:044dfba47660 | 81 | // } |
creatron | 0:044dfba47660 | 82 | // dlms.poll_rs485(); |
creatron | 0:044dfba47660 | 83 | } |
creatron | 0:044dfba47660 | 84 | while (1); |
creatron | 0:044dfba47660 | 85 | } |
creatron | 0:044dfba47660 | 86 | //----[ then end]------------------------------------------------------------- |
creatron | 0:044dfba47660 | 87 | |
creatron | 0:044dfba47660 | 88 |