From: Othmar Gsenger Date: Tue, 29 Mar 2011 23:04:08 +0000 (+0000) Subject: dumping dart data to serial X-Git-Url: https://git.realraum.at/?a=commitdiff_plain;h=2d0ed8b1d34616652604d3f546c4ff9dc038ae5c;p=svn42.git dumping dart data to serial --- diff --git a/dart/Makefile b/dart/Makefile index cd5308c..8697f9a 100755 --- a/dart/Makefile +++ b/dart/Makefile @@ -193,7 +193,7 @@ applet/core.a: $(OBJ) # Target: clean project. clean: - $(REMOVE) applet/$(TARGET).hex applet/$(TARGET).eep applet/$(TARGET).cof applet/$(TARGET).elf \ + $(REMOVE) applet/$(TARGET).hex applet/$(TARGET).cpp applet/$(TARGET).eep applet/$(TARGET).cof applet/$(TARGET).elf \ applet/$(TARGET).map applet/$(TARGET).sym applet/$(TARGET).lss applet/core.a \ $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) $(CXXSRC:.cpp=.s) $(CXXSRC:.cpp=.d) diff --git a/dart/dart.pde b/dart/dart.pde index f464499..35b339c 100644 --- a/dart/dart.pde +++ b/dart/dart.pde @@ -2,99 +2,15 @@ #include #include +//INPUT PINS digital 2-7 PIND +//INPUT PINS digitat 8-12 PINB +//INPUT PINS analog 0-4 PINC + #define RF433_PIN 10 //********************************************************************// typedef unsigned char byte; -typedef struct { - byte offset; - byte state; -} rf_bit_t; - -// offset is number of alphas (0.08ms) - -const rf_bit_t zero_bit[] = { { 4, 1 }, - { 16, 0 }, - { 20, 1 }, - { 32, 0 }, - { 0, 0 } }; - -const rf_bit_t one_bit[] = { { 12, 1 }, - { 16, 0 }, - { 28, 1 }, - { 32, 0 }, - { 0, 0 } }; - -const rf_bit_t float_bit[] = { { 4, 1 }, - { 16, 0 }, - { 28, 1 }, - { 32, 0 }, - { 0, 0 } }; - -const rf_bit_t sync_bit[] = { { 4, 1 }, - { 128, 0 }, - { 0, 0 } }; - -typedef enum { ZERO = 0, ONE , FLOAT , SYNC } adbit_t; -typedef byte ad_bit_t; -#define WORD_LEN 13 -typedef ad_bit_t word_t[WORD_LEN]; - -const rf_bit_t* bit_defs[] = { zero_bit, one_bit, float_bit, sync_bit }; - -byte alpha_cnt = 0; -byte bit_cnt = 0; -byte chunk_cnt = 0; -byte word_cnt = 0; -const ad_bit_t* current_word; -byte volatile frame_finished = 1; - -#define FRAME_LEN 8 - -#define A1_ON 0 -#define A1_OFF 1 -#define A2_ON 2 -#define A2_OFF 3 - -#define B1_ON 4 -#define B1_OFF 5 -#define B2_ON 6 -#define B2_OFF 7 - -#define C1_ON 8 -#define C1_OFF 9 -#define C2_ON 10 -#define C2_OFF 11 - -#define D1_ON 12 -#define D1_OFF 13 -#define D2_ON 14 -#define D2_OFF 15 - -const word_t words[] = { -{ ZERO, ZERO, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // A1_ON -{ ZERO, ZERO, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // A1_OFF -{ ZERO, ZERO, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // A2_ON -{ ZERO, ZERO, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // A2_OFF - -{ FLOAT, ZERO, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // B1_ON -{ FLOAT, ZERO, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // B1_OFF -{ FLOAT, ZERO, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // B2_ON -{ FLOAT, ZERO, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // B2_OFF - -{ ZERO, FLOAT, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // C1_ON -{ ZERO, FLOAT, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // C1_OFF -{ ZERO, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // C2_ON -{ ZERO, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // C2_OFF - -{ FLOAT, FLOAT, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // D1_ON -{ FLOAT, FLOAT, FLOAT, FLOAT, ZERO, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC }, // D1_OFF -{ FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, FLOAT, SYNC }, // D2_ON -{ FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, FLOAT, FLOAT, ZERO, SYNC } // D2_OFF -}; - - //********************************************************************// void start_timer() @@ -115,83 +31,48 @@ void stop_timer() // stop the timer TIMSK1 = 0; // disable timer interrupt } -union { - byte uint8[4]; - uint32_t uint32; -} rf433_data; -byte rf433_hi_cnt=0; -byte rf433_lo_cnt=0; -byte last_sample=0; -int valid=0; ISR(TIMER1_COMPA_vect) { - byte sample = digitalRead(RF433_PIN); - if (last_sample!=sample && sample==HIGH) - { - if ( rf433_lo_cnt > 2 && rf433_lo_cnt<6 && rf433_hi_cnt>10 && rf433_hi_cnt < 14) - { - rf433_data.uint32<<=1; - rf433_data.uint32|=1; - valid++; - } else if (rf433_hi_cnt > 2 && rf433_hi_cnt<6 && rf433_lo_cnt>10 && rf433_lo_cnt < 14) { - rf433_data.uint32<<=1; - valid++; - } else if (rf433_hi_cnt > 2 && rf433_hi_cnt<6 && rf433_lo_cnt>120 && rf433_lo_cnt < 128 && valid >=24) { - //rf433_data.uint8[3]=0; - //Serial.print(rf433_data.uint32); - Serial.print(rf433_data.uint8[0],BYTE); - Serial.print(rf433_data.uint8[1],BYTE); - Serial.print(rf433_data.uint8[2],BYTE); - //Serial.print(rf433_data.uint8[3],BYTE); - } else { - valid=0; - rf433_data.uint32=0; - } - rf433_hi_cnt=0; - rf433_lo_cnt=0; - } - if (sample == HIGH) - rf433_hi_cnt++; - else - rf433_lo_cnt++; - last_sample=sample; +// Serial.print('a'); } -//unsigned long wm_start_[3]={0,0,0}; -//bool wait_millis(unsigned long *start_time, unsigned long ms) -//{ -// if (ms == 0) -// return false; -// else if (*start_time > 0) -// { -// if (millis() < *start_time || millis() > (*start_time) + ms) -// { -// *start_time = 0; -// return false; -// } -// else -// return true; -// } -// else -// { -// *start_time=millis(); -// return true; -// } -//} - -//********************************************************************// void setup() { - pinMode(RF433_PIN, INPUT); // set pin to input - digitalWrite(RF433_PIN, LOW); // turn of pullup resistors - +// pinMode(RF433_PIN, INPUT); // set pin to input +// digitalWrite(RF433_PIN, LOW); // turn of pullup resistors + //Set Port as input + DDRB=0; +// disable pull up + PORTB=0; + DDRD = DDRD & 3; + PORTD= PORTD & 3; + DDRC=0; + PORTC=0; Serial.begin(57600); -// Serial.println("starting timer"); - start_timer(); + Serial.println("starting timer"); +// start_timer(); } +union union16 { + byte uint8[2]; + uint16_t uint16; +}; +//INPUT PINS digital 2-7 PIND +//INPUT PINS digitat 8-12 PINB +//INPUT PINS analog 0-4 PINC void loop() { +// Serial.println("foo"); +// return; + + union16 data; + data.uint8[0]=PIND; + data.uint16<<=3; + data.uint8[0]|= (PINC & B11111); + data.uint16<<=5; + data.uint8[0]|= (PINB & B11111); + Serial.print(data.uint8[0]); + Serial.print(data.uint8[1]); }