DALI TX BACKWARDS

Dependencies:   mbed

Committer:
wikarapg
Date:
Sat Jan 16 16:15:49 2021 +0000
Revision:
0:83a3126987ad
Design

Who changed what in which revision?

UserRevisionLine numberNew 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 }