|
@@ -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....");
|
|
|
}
|