@@ -26,15 +26,6 @@ extern "C" {
26
26
#define malloc os_malloc
27
27
#define free os_free
28
28
29
- #ifdef AVRISP_ACTIVE_HIGH_RESET
30
- #define AVRISP_RESET_ON HIGH
31
- #define AVRISP_RESET_OFF LOW
32
- #else
33
- #define AVRISP_RESET_ON LOW
34
- #define AVRISP_RESET_OFF HIGH
35
- #endif
36
-
37
-
38
29
// #define AVRISP_DEBUG(fmt, ...) os_printf("[AVRP] " fmt "\r\n", ##__VA_ARGS__ )
39
30
#define AVRISP_DEBUG (...)
40
31
@@ -47,8 +38,8 @@ extern "C" {
47
38
48
39
#define beget16 (addr ) (*addr * 256 + *(addr+1 ))
49
40
50
- ESP8266AVRISP::ESP8266AVRISP (uint16_t port, uint8_t reset_pin, uint32_t spi_freq, bool reset_state):
51
- _reset_pin(reset_pin), _reset_state(reset_state), _spi_freq(spi_freq),
41
+ ESP8266AVRISP::ESP8266AVRISP (uint16_t port, uint8_t reset_pin, uint32_t spi_freq, bool reset_state, bool reset_activehigh ):
42
+ _reset_pin(reset_pin), _reset_state(reset_state), _spi_freq(spi_freq), _reset_activehigh(reset_activehigh),
52
43
_server(WiFiServer(port)), _state(AVRISP_STATE_IDLE)
53
44
{
54
45
pinMode (_reset_pin, OUTPUT);
@@ -68,11 +59,7 @@ void ESP8266AVRISP::setSpiFrequency(uint32_t freq) {
68
59
69
60
void ESP8266AVRISP::setReset (bool rst) {
70
61
_reset_state = rst;
71
- if (_reset_state) {
72
- digitalWrite (_reset_pin, AVRISP_RESET_ON);
73
- } else {
74
- digitalWrite (_reset_pin, AVRISP_RESET_OFF);
75
- }
62
+ digitalWrite (_reset_pin, _resetLevel (_reset_state));
76
63
}
77
64
78
65
AVRISPState_t ESP8266AVRISP::update () {
@@ -230,9 +217,9 @@ void ESP8266AVRISP::start_pmode() {
230
217
231
218
// try to sync the bus
232
219
SPI.transfer (0x00 );
233
- digitalWrite (_reset_pin, AVRISP_RESET_OFF );
220
+ digitalWrite (_reset_pin, _resetLevel ( false ) );
234
221
delayMicroseconds (50 );
235
- digitalWrite (_reset_pin, AVRISP_RESET_ON );
222
+ digitalWrite (_reset_pin, _resetLevel ( true ) );
236
223
delay (30 );
237
224
238
225
spi_transaction (0xAC , 0x53 , 0x00 , 0x00 );
0 commit comments