فهرست منبع

Tidy up a bit.

Thomas Chef 2 سال پیش
والد
کامیت
5e38936479
2فایلهای تغییر یافته به همراه14 افزوده شده و 23 حذف شده
  1. 9 22
      main/ir_transmit.c
  2. 5 1
      main/main.c

+ 9 - 22
main/ir_transmit.c

@@ -13,17 +13,12 @@
 // channel clock period = 1 uS
 #define RMT_CLK_DIV    80
 
-// RAM item that holds the IR protocol
+// Variable that holds the IR protocol transmission. 1 start bit, 72 data bits and one stop bit
 rmt_item32_t toshiba_rmt[1 + 72 + 1 + 1];
 
 
 void initIrTransmit() {
 
-    //gpio_pad_select_gpio(GPIO_IR_TX_DATA);
-    //gpio_set_direction(GPIO_IR_TX_DATA, GPIO_MODE_OUTPUT);
-    //gpio_set_level(GPIO_IR_TX_DATA,1);
-
-
     rmt_config_t rmt_tx;
 	rmt_tx.rmt_mode = RMT_MODE_TX;
 	rmt_tx.channel  = RMT_TX_CHANNEL;
@@ -34,7 +29,7 @@ void initIrTransmit() {
 	rmt_tx.tx_config.carrier_duty_percent = 30;
 	rmt_tx.tx_config.carrier_freq_hz = 38000;
 	rmt_tx.tx_config.carrier_level   = RMT_CARRIER_LEVEL_HIGH;
-	rmt_tx.tx_config.carrier_en      = false;
+	rmt_tx.tx_config.carrier_en      = true;
 	rmt_tx.tx_config.idle_level      = RMT_IDLE_LEVEL_LOW;
 	rmt_tx.tx_config.idle_output_en  = true;
     rmt_tx.flags = 0;
@@ -43,23 +38,16 @@ void initIrTransmit() {
 	ESP_ERROR_CHECK( rmt_driver_install(rmt_tx.channel, 0, 0) );
 
     // Init the ir data field
-    //toshiba_rmt[0].val = (kToshibaAcHdrMark << 17) | (1 << 16) | (kToshibaAcHdrSpace << 1) | 0;    // Header of IR Transmit
-    toshiba_rmt[0].duration0 = kToshibaAcHdrMark;
-    toshiba_rmt[0].level0 = 1;
-    toshiba_rmt[0].duration1 = kToshibaAcHdrSpace;
-    toshiba_rmt[0].level1 = 0;
-    toshiba_rmt[73].duration0 = kToshibaAcBitMark;
-    toshiba_rmt[73].level0 = 1;
-    toshiba_rmt[73].duration1 = kToshibaAcZeroSpace;
-    toshiba_rmt[73].level1 = 0;
+    toshiba_rmt[0].val = (kToshibaAcHdrMark << 0) | (1 << 15) | (kToshibaAcHdrSpace << 16);    // Header of IR Transmit
+    toshiba_rmt[73].val = (kToshibaAcBitMark << 0) | (1 << 15) | (kToshibaAcZeroSpace << 16);    // Header of IR Transmit
     toshiba_rmt[74].val = (1 << 16);    // End marker
 
+    // 0x47503FC
+    // 0x1FE823A
+
     for(int i=1;i<73;i++) {
-        //toshiba_rmt[i].val = (kToshibaAcBitMark << 17) | (1 << 16) | (kToshibaAcZeroSpace << 1) | 0;    // Header of IR Transmit
-        toshiba_rmt[i].duration0 = kToshibaAcBitMark;
-        toshiba_rmt[i].level0 = 1;
-        toshiba_rmt[i].duration1 = kToshibaAcZeroSpace;
-        toshiba_rmt[i].level1 = 0;
+
+        toshiba_rmt[i].val = (kToshibaAcBitMark << 0) | (1 << 15) | (kToshibaAcZeroSpace << 16);    // Header of IR Transmit
     }
 
 	ESP_LOGI("IR_TX","Init done.");
@@ -68,7 +56,6 @@ void initIrTransmit() {
 void sendToshibaIRData() {
 
     ESP_LOGI("IR_TX","Send test-code");
-    //ESP_ERROR_CHECK(rmt_write_items(RMT_TX_CHANNEL, toshiba_rmt, sizeof(toshiba_rmt) / sizeof(toshiba_rmt[0]), true));
     ESP_ERROR_CHECK(rmt_write_items(RMT_TX_CHANNEL, &(toshiba_rmt[0]), 1+72+1, true));
     ESP_LOGI("IR_TX","Send done....");
 }

+ 5 - 1
main/main.c

@@ -43,10 +43,14 @@ void app_main(void)
     initReceiver();         // Init receiver-task
 #endif
 
+initIrTransmit();
+
     TickType_t vLastWakeTime = xTaskGetTickCount();
 
     // Do an initial delay to make the different tasks to work out of sync to each other (not send all data at same time)
-    vTaskDelayUntil( &vLastWakeTime, 30000 / portTICK_PERIOD_MS );
+    //vTaskDelayUntil( &vLastWakeTime, 1000 / portTICK_PERIOD_MS );
+
+    ESP_LOGI("MAIN","Lets go...");
 
     // ---------------- MAIN WHILE -------------------
     while(1) {