fix(boards): 修复arduino espxx下DS1307和DS3231异常

This commit is contained in:
王立帮
2025-04-30 00:03:20 +08:00
parent 52f1c9a599
commit ac448b18c2
8 changed files with 144 additions and 7 deletions

View File

@@ -139,7 +139,7 @@ export const DS1302_init = function (_, generator) {
generator.definitions_['include_ThreeWire'] = '#include <ThreeWire.h>';
generator.definitions_['include_RtcDS1302'] = '#include <RtcDS1302.h>';
//generator.definitions_['var_declare_RtcDateTime_dt'] = 'const RtcDateTime dt;';
generator.definitions_['var_declare_ThreeWire'] = 'ThreeWire ' + 'myWire(' + dropdown_dat + ',' + dropdown_clk + ',' + dropdown_rst + ');';
generator.definitions_['var_declare_ThreeWire'] = 'ThreeWire ' + 'myWire(' + dropdown_dat + ', ' + dropdown_clk + ', ' + dropdown_rst + ');';
generator.definitions_['var_declare_RtcDS1302'] = 'RtcDS1302<ThreeWire> Rtc(myWire);';
generator.setups_['setup_Rtc.Begin'] = 'Rtc.Begin();\n Rtc.SetIsRunning(true);';
return "";
@@ -155,8 +155,7 @@ export const DS1307_init = function (_, generator) {
generator.definitions_['include_SoftwareWire'] = '#include <SoftwareWire.h>';
generator.definitions_['var_declare_SoftwareWire'] = 'SoftwareWire myWire(' + SDA + ',' + SCL + ');';
generator.definitions_['var_declare_' + RTCType] = RTCType + '<SoftwareWire> Rtc(myWire);';
}
else {
} else {
generator.definitions_['include_Wire'] = '#include <Wire.h>';
generator.definitions_['var_declare_' + RTCType] = RTCType + '<TwoWire> Rtc(Wire);';
}

View File

@@ -1,3 +1,6 @@
import { ArduinoESP8266SensorGenerators } from '@mixly/arduino-esp8266';
export const chaoshengbo = function (_, generator) {
var dropdown_pin1 = this.getFieldValue('PIN1');
var dropdown_pin2 = this.getFieldValue('PIN2');
@@ -73,4 +76,6 @@ export const ESP_TCS34725_Get_RGB = function (_, generator) {
generator.setups_['setup_Adafruit_TCS34725'] = 'tcs34725.begin(0x29);';
const RGB = this.getFieldValue('TCS34725_COLOR');
return ['getRGB(\'' + RGB + '\')', generator.ORDER_ATOMIC];
}
}
export const DS1307_init = ArduinoESP8266SensorGenerators.DS1307_init;

View File

@@ -8,6 +8,9 @@
],
"@mixly/arduino-avr": [
"../arduino_avr"
],
"@mixly/arduino-esp8266": [
"../arduino_esp8266"
]
}
},

View File

@@ -924,6 +924,119 @@
</shadow>
</value>
</block>
<!--DS1302-->
<block type="DS1302_init">
<value name="RST">
<shadow type="pins_digital">
<field name="PIN">0</field>
</shadow>
</value>
<value name="DAT">
<shadow type="pins_digital">
<field name="PIN">1</field>
</shadow>
</value>
<value name="CLK">
<shadow type="pins_digital">
<field name="PIN">2</field>
</shadow>
</value>
</block>
<block type="DS1307_init">
<value name="SDA">
<shadow type="pins_digital">
<field name="PIN">0</field>
</shadow>
</value>
<value name="SCL">
<shadow type="pins_digital">
<field name="PIN">1</field>
</shadow>
</value>
</block>
<block type="RTC_get_time"></block>
<block type="RTC_time">
<value name="hour">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
<value name="minute">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="second">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="RTC_date">
<value name="year">
<shadow type="math_number">
<field name="NUM">2020</field>
</shadow>
</value>
<value name="month">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="RTC_set_time">
<value name="date">
<shadow type="text">
<field name="TEXT">Jan/01/2020</field>
</shadow>
<block type="RTC_date">
<value name="year">
<shadow type="math_number">
<field name="NUM">2020</field>
</shadow>
</value>
<value name="month">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<value name="time">
<shadow type="text">
<field name="TEXT">12:34:56</field>
</shadow>
<block type="RTC_time">
<value name="hour">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
<value name="minute">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="second">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="get_system_date_time">
</block>
<block type="PS2_init">
</block>
<block type="PS2_update">
@@ -2004,7 +2117,8 @@
</block>
</statement>
</block>
<block type="serialBT_Init" m-show="esp32 node32s nodemcu-32s m5stick-c m5stack-core-esp32 m5stack-fire bpi-bit esp32cam">
<block type="serialBT_Init"
m-show="esp32 node32s nodemcu-32s m5stick-c m5stack-core-esp32 m5stack-fire bpi-bit esp32cam">
<value name="CONTENT">
<shadow type="text">
<field name="TEXT">ESP32BT</field>

View File

@@ -6,7 +6,8 @@ module.exports = merge(common, {
resolve: {
alias: {
'@mixly/arduino': path.resolve(__dirname, '../arduino'),
'@mixly/arduino-avr': path.resolve(__dirname, '../arduino_avr')
'@mixly/arduino-avr': path.resolve(__dirname, '../arduino_avr'),
'@mixly/arduino-esp8266': path.resolve(__dirname, '../arduino_esp8266')
}
},
module: {

View File

@@ -3,6 +3,7 @@ import * as ArduinoESP8266EthernetBlocks from './blocks/ethernet';
import * as ArduinoESP8266PinoutBlocks from './blocks/pinout';
import * as ArduinoESP8266EthernetGenerators from './generators/ethernet';
import * as ArduinoESP8266PinoutGenerators from './generators/pinout';
import * as ArduinoESP8266SensorGenerators from './generators/sensor';
import ArduinoESP8266ZhHans from './language/zh-hans';
import ArduinoESP8266ZhHant from './language/zh-hant';
@@ -14,6 +15,7 @@ export {
ArduinoESP8266PinoutBlocks,
ArduinoESP8266EthernetGenerators,
ArduinoESP8266PinoutGenerators,
ArduinoESP8266SensorGenerators,
ArduinoESP8266ZhHans,
ArduinoESP8266ZhHant,
ArduinoESP8266En

View File

@@ -0,0 +1,11 @@
export const DS1307_init = function (_, generator) {
const SDA = generator.valueToCode(this, 'SDA', generator.ORDER_ATOMIC);
const SCL = generator.valueToCode(this, 'SCL', generator.ORDER_ATOMIC);
const RTC_TYPE = this.getFieldValue('RTCType');
generator.definitions_[`include_${RTC_TYPE}`] = `#include <${RTC_TYPE}.h>`;
generator.definitions_['include_Wire'] = '#include <Wire.h>';
generator.definitions_[`var_declare_${RTC_TYPE}`] = RTC_TYPE + '<TwoWire> Rtc(Wire);';
generator.setups_['setup_wire_begin'] = `Wire.begin(${SDA}, ${SCL});`;
generator.setups_['setup_rtc_begin'] = `Rtc.Begin();\n${generator.INDENT}Rtc.SetIsRunning(true);`;
return '';
}

View File

@@ -58,6 +58,7 @@ import {
ArduinoESP8266PinoutBlocks,
ArduinoESP8266EthernetGenerators,
ArduinoESP8266PinoutGenerators,
ArduinoESP8266SensorGenerators,
ArduinoESP8266ZhHans,
ArduinoESP8266ZhHant,
ArduinoESP8266En
@@ -134,5 +135,6 @@ Object.assign(
ArduinoAVRTextGenerators,
ArduinoAVRToolsGenerators,
ArduinoESP8266EthernetGenerators,
ArduinoESP8266PinoutGenerators
ArduinoESP8266PinoutGenerators,
ArduinoESP8266SensorGenerators
);