remove crap

master
Ondřej Hruška 2 years ago
parent 937ba25b84
commit ee75f4ed35
  1. 107
      main/irblast.c
  2. 31
      main/irblast.h

@ -1,107 +0,0 @@
/* Hello World Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "driver/ledc.h"
#include "irblast.h"
static portMUX_TYPE mux_irblast;
#define CMDLEN 4
static const uint8_t COMMANDS[][CMDLEN] = {
[IRBLAST_ONOFF] = {0b10000000, 0b01111111, 0b00000000, 0b11111111},
[IRBLAST_DAYNIGHT] = {0b10000000, 0b01111111, 0b10000000, 0b01111111},
[IRBLAST_SPEED1] = {0b10000000, 0b01111111, 0b10101000, 0b01010111},
[IRBLAST_SPEED2] = {0b10000000, 0b01111111, 0b01101000, 0b10010111},
[IRBLAST_SPEED3] = {0b10000000, 0b01111111, 0b00101000, 0b11010111},
[IRBLAST_MODE1] = {0b10000000, 0b01111111, 0b00011000, 0b11100111},
[IRBLAST_MODE2] = {0b10000000, 0b01111111, 0b10011000, 0b01100111},
[IRBLAST_MODE3] = {0b10000000, 0b01111111, 0b00001000, 0b11110111},
[IRBLAST_MODE4] = {0b10000000, 0b01111111, 0b10001000, 0b01110111},
[IRBLAST_HUM1] = {0b10000000, 0b01111111, 0b00010000, 0b11101111},
[IRBLAST_HUM2] = {0b10000000, 0b01111111, 0b01010000, 0b10101111},
[IRBLAST_HUM3] = {0b10000000, 0b01111111, 0b10010000, 0b01101111},
};
void irblast_setup() {
vPortCPUInitializeMutex(&mux_irblast);
ledc_timer_config_t ledc_timer = {
.duty_resolution = LEDC_TIMER_8_BIT, // resolution of PWM duty
.freq_hz = 38500, // frequency of PWM signal
.speed_mode = LEDC_HIGH_SPEED_MODE, // timer mode
.timer_num = LEDC_TIMER_0, // timer index
.clk_cfg = LEDC_AUTO_CLK, // Auto select the source clock
};
// Set configuration of timer0 for high speed channels
ledc_timer_config(&ledc_timer);
ledc_channel_config_t chan = {
.channel = LEDC_CHANNEL_0,
.duty = 127,
.gpio_num = CONFIG_PIN_IRLED,
.speed_mode = LEDC_HIGH_SPEED_MODE,
.hpoint = 0,
.timer_sel = LEDC_TIMER_0
};
ledc_channel_config(&chan);
}
static inline void pwm_on() {
ledc_set_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0, 127);
ledc_update_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0);
}
static inline void pwm_off() {
ledc_stop(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0, 0);
}
void irblast_send(enum irblast_cmd cmd) {
const uint8_t *bytes = COMMANDS[cmd];
portENTER_CRITICAL(&mux_irblast);
// Preamble
pwm_on();
ets_delay_us(9000);
pwm_off();
ets_delay_us(4500);
for (int i = 0; i < CMDLEN; i++) {
uint8_t byte = bytes[i];
for (int j = 0; j < 8; j++) {
if ((byte & 0x80) == 0) {
pwm_on();
ets_delay_us(588);
pwm_off();
ets_delay_us(540);
} else {
pwm_on();
ets_delay_us(590);
pwm_off();
ets_delay_us(1672);
}
byte <<= 1;
}
}
// one "1" at the end, for some reason
pwm_on();
ets_delay_us(600);
pwm_off();
portEXIT_CRITICAL(&mux_irblast);
vTaskDelay(pdMS_TO_TICKS(1000));
}

@ -1,31 +0,0 @@
/**
* IRBlaster main file
*
* Created on 2021/12/10.
*/
#ifndef _BLAST_H
#define _BLAST_H
#include "esp_err.h"
enum irblast_cmd {
IRBLAST_ONOFF,
IRBLAST_DAYNIGHT,
IRBLAST_SPEED1,
IRBLAST_SPEED2,
IRBLAST_SPEED3,
IRBLAST_MODE1,
IRBLAST_MODE2,
IRBLAST_MODE3,
IRBLAST_MODE4,
IRBLAST_HUM1,
IRBLAST_HUM2,
IRBLAST_HUM3,
};
void irblast_setup();
void irblast_send(enum irblast_cmd cmd);
#endif //_BLAST_H
Loading…
Cancel
Save