wikara gunawan
/
DALI_TX_BACKWARDS_KL25Z
DALI TX BACKWARDS
main.cpp@0:83a3126987ad, 2021-01-16 (annotated)
- Committer:
- wikarapg
- Date:
- Sat Jan 16 16:15:49 2021 +0000
- Revision:
- 0:83a3126987ad
Design
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wikarapg | 0:83a3126987ad | 1 | // Backward FRAME Code to debug |
wikarapg | 0:83a3126987ad | 2 | |
wikarapg | 0:83a3126987ad | 3 | #include "mbed.h" |
wikarapg | 0:83a3126987ad | 4 | |
wikarapg | 0:83a3126987ad | 5 | #define BROADCAST 0x00 |
wikarapg | 0:83a3126987ad | 6 | #define OFF 0x01 |
wikarapg | 0:83a3126987ad | 7 | #define ON 0x02 |
wikarapg | 0:83a3126987ad | 8 | |
wikarapg | 0:83a3126987ad | 9 | #define TE 834/2 //Halftime of The Transmitted BIT |
wikarapg | 0:83a3126987ad | 10 | |
wikarapg | 0:83a3126987ad | 11 | DigitalOut myled(LED1); |
wikarapg | 0:83a3126987ad | 12 | DigitalOut dali(D7); |
wikarapg | 0:83a3126987ad | 13 | DigitalOut dali_tx(D8); |
wikarapg | 0:83a3126987ad | 14 | |
wikarapg | 0:83a3126987ad | 15 | |
wikarapg | 0:83a3126987ad | 16 | int man_packets[20]; |
wikarapg | 0:83a3126987ad | 17 | int address; |
wikarapg | 0:83a3126987ad | 18 | int command; |
wikarapg | 0:83a3126987ad | 19 | int packet_fin; |
wikarapg | 0:83a3126987ad | 20 | |
wikarapg | 0:83a3126987ad | 21 | //How To initialise the interrupt |
wikarapg | 0:83a3126987ad | 22 | |
wikarapg | 0:83a3126987ad | 23 | void dali_packet(int address, int command){ |
wikarapg | 0:83a3126987ad | 24 | int i; |
wikarapg | 0:83a3126987ad | 25 | int ones; |
wikarapg | 0:83a3126987ad | 26 | //Start Bits 1 |
wikarapg | 0:83a3126987ad | 27 | man_packets[0] = 1; |
wikarapg | 0:83a3126987ad | 28 | man_packets[1] = 0; |
wikarapg | 0:83a3126987ad | 29 | man_packets[2] = 1; |
wikarapg | 0:83a3126987ad | 30 | //Stop Bits |
wikarapg | 0:83a3126987ad | 31 | |
wikarapg | 0:83a3126987ad | 32 | for(i=0; i<8; i++){ |
wikarapg | 0:83a3126987ad | 33 | //For Address Conversion |
wikarapg | 0:83a3126987ad | 34 | ones = address >> 7 - i; //Shift the bit to the left |
wikarapg | 0:83a3126987ad | 35 | ones &= 0x01; |
wikarapg | 0:83a3126987ad | 36 | if(ones == 1){ |
wikarapg | 0:83a3126987ad | 37 | man_packets[(i*2)+3] = 0; |
wikarapg | 0:83a3126987ad | 38 | man_packets[(i*2)+4] = 1; |
wikarapg | 0:83a3126987ad | 39 | } else { |
wikarapg | 0:83a3126987ad | 40 | man_packets[(i*2)+3] = 1; |
wikarapg | 0:83a3126987ad | 41 | man_packets[(i*2)+4] = 0; |
wikarapg | 0:83a3126987ad | 42 | } |
wikarapg | 0:83a3126987ad | 43 | |
wikarapg | 0:83a3126987ad | 44 | man_packets[19] = 1; //This is only a workaround solution |
wikarapg | 0:83a3126987ad | 45 | } |
wikarapg | 0:83a3126987ad | 46 | } |
wikarapg | 0:83a3126987ad | 47 | |
wikarapg | 0:83a3126987ad | 48 | |
wikarapg | 0:83a3126987ad | 49 | int main() { |
wikarapg | 0:83a3126987ad | 50 | while(1) { |
wikarapg | 0:83a3126987ad | 51 | int i; |
wikarapg | 0:83a3126987ad | 52 | dali = 1; |
wikarapg | 0:83a3126987ad | 53 | |
wikarapg | 0:83a3126987ad | 54 | int value; |
wikarapg | 0:83a3126987ad | 55 | printf("Enter an integer: "); |
wikarapg | 0:83a3126987ad | 56 | scanf("%d", &value); |
wikarapg | 0:83a3126987ad | 57 | |
wikarapg | 0:83a3126987ad | 58 | dali_packet(value, value+20); //Process packets |
wikarapg | 0:83a3126987ad | 59 | |
wikarapg | 0:83a3126987ad | 60 | for(i=0; i<20; i++){ |
wikarapg | 0:83a3126987ad | 61 | dali = man_packets[i]; |
wikarapg | 0:83a3126987ad | 62 | dali_tx = man_packets[i]; |
wikarapg | 0:83a3126987ad | 63 | wait_us(416); |
wikarapg | 0:83a3126987ad | 64 | } |
wikarapg | 0:83a3126987ad | 65 | dali = 1; |
wikarapg | 0:83a3126987ad | 66 | dali_tx = 1; |
wikarapg | 0:83a3126987ad | 67 | packet_fin = 1; |
wikarapg | 0:83a3126987ad | 68 | } |
wikarapg | 0:83a3126987ad | 69 | } |