Update(boards): 格式化arduino板卡的部分生成代码

This commit is contained in:
王立帮
2025-02-17 21:02:43 +08:00
parent 07ce8f39ab
commit 8d155d488e
6 changed files with 71 additions and 66 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -4,7 +4,7 @@ import { Variables } from 'blockly/core';
export const servo_move = function (_, generator) { export const servo_move = function (_, generator) {
var dropdown_pin = this.getFieldValue('PIN'); var dropdown_pin = this.getFieldValue('PIN');
var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC); var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC);
var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '0' var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_Servo'] = '#include <Servo.h>'; generator.definitions_['include_Servo'] = '#include <Servo.h>';
generator.definitions_['var_declare_servo' + dropdown_pin] = 'Servo servo_' + dropdown_pin + ';'; generator.definitions_['var_declare_servo' + dropdown_pin] = 'Servo servo_' + dropdown_pin + ';';
generator.setups_['setup_servo_' + dropdown_pin] = 'servo_' + dropdown_pin + '.attach(' + dropdown_pin + ');'; generator.setups_['setup_servo_' + dropdown_pin] = 'servo_' + dropdown_pin + '.attach(' + dropdown_pin + ');';
@@ -253,12 +253,10 @@ export const display_rgb_rainbow1 = function (_, generator) {
var code2 = 'uint32_t Wheel(byte WheelPos) {\n' var code2 = 'uint32_t Wheel(byte WheelPos) {\n'
+ ' if(WheelPos < 85) {\n' + ' if(WheelPos < 85) {\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n'
+ ' }\n' + ' } else if (WheelPos < 170) {\n'
+ ' else if(WheelPos < 170){\n'
+ ' WheelPos -= 85;\n' + ' WheelPos -= 85;\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n'
+ ' }\n ' + ' } else {\n'
+ ' else{\n'
+ ' WheelPos -= 170;\n' + ' WheelPos -= 170;\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n'
+ ' }\n' + ' }\n'
@@ -287,12 +285,10 @@ export const display_rgb_rainbow2 = function (_, generator) {
var code2 = 'uint32_t Wheel(byte WheelPos) {\n' var code2 = 'uint32_t Wheel(byte WheelPos) {\n'
+ ' if (WheelPos < 85) {\n' + ' if (WheelPos < 85) {\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n'
+ ' }\n' + ' } else if (WheelPos < 170) {\n'
+ ' else if(WheelPos < 170){\n'
+ ' WheelPos -= 85;\n' + ' WheelPos -= 85;\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n'
+ ' }\n' + ' } else {\n'
+ ' else{\n'
+ ' WheelPos -= 170;\n' + ' WheelPos -= 170;\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n'
+ ' }\n' + ' }\n'
@@ -334,12 +330,10 @@ export const display_rgb_rainbow3 = function (_, generator) {
var code2 = 'uint32_t Wheel(byte WheelPos) {\n' var code2 = 'uint32_t Wheel(byte WheelPos) {\n'
+ ' if (WheelPos < 85) {\n' + ' if (WheelPos < 85) {\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n'
+ ' }\n' + ' } else if (WheelPos < 170) {\n'
+ ' else if(WheelPos < 170){\n'
+ ' WheelPos -= 85;\n' + ' WheelPos -= 85;\n'
+ ' return rgb_display_' + dropdown_rgbpin + '.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n' + ' return rgb_display_' + dropdown_rgbpin + '.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n'
+ ' }\n' + ' } else {\n'
+ ' else{\n'
+ ' WheelPos -= 170;return rgb_display_' + dropdown_rgbpin + '.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n' + ' WheelPos -= 170;return rgb_display_' + dropdown_rgbpin + '.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n'
+ ' }\n' + ' }\n'
+ '}\n'; + '}\n';
@@ -689,9 +683,16 @@ export const I2Cmotor = function (_, generator) {
+ 'Wire.setClock(400000);'; + 'Wire.setClock(400000);';
var code2; var code2;
code2 = 'void motor(int ID, int SPEED) { // 0-7\n' code2 = 'void motor(int ID, int SPEED) { // 0-7\n'
+ ' if(SPEED>0){pwm.setPin(ID*2, 0 );pwm.setPin(ID*2+1, (SPEED+1)*16-1);}\n' + ' if(SPEED > 0) {\n'
+ ' else if(SPEED==0){pwm.setPin(ID*2, 4095 );pwm.setPin(ID*2+1, 4095);}\n' + ' pwm.setPin(ID * 2, 0);\n'
+ ' else if(SPEED<0){pwm.setPin(ID*2, 1-(SPEED+1)*16);pwm.setPin(ID*2+1, 0);}\n' + ' pwm.setPin(ID * 2 + 1, (SPEED + 1) * 16 - 1);\n'
+ ' } else if (SPEED == 0) {\n'
+ ' pwm.setPin(ID * 2, 4095);\n'
+ ' pwm.setPin(ID * 2 + 1, 4095);\n'
+ ' } else if (SPEED < 0) {\n'
+ ' pwm.setPin(ID * 2, 1 - (SPEED + 1) * 16);\n'
+ ' pwm.setPin(ID * 2 + 1, 0);\n'
+ ' }\n'
+ '}\n'; + '}\n';
generator.definitions_['motor'] = code2; generator.definitions_['motor'] = code2;
var code = 'motor(' + motorNO + ',' + speed + ');\n'; var code = 'motor(' + motorNO + ',' + speed + ');\n';

View File

@@ -20,7 +20,7 @@ export const inout_digital_write2 = function (_, generator) {
var code = ""; var code = "";
var isVar = true; var isVar = true;
for (var pin of Profile.default.digital) { for (var pin of Profile.default.digital) {
if (pin[0] === dropdown_pin) { if (pin[1] === dropdown_pin) {
isVar = false; isVar = false;
break; break;
} }
@@ -47,20 +47,24 @@ export const inout_digital_read = function (_, generator) {
export const inout_digital_read2 = function (_, generator) { export const inout_digital_read2 = function (_, generator) {
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = ""; var code = "";
if (window.isNaN(dropdown_pin) && !(new RegExp("^A([0-9]|10|11|12|13|14|15)$").test(dropdown_pin))) { var isVar = true;
for (var pin of Profile.default.digital) {
if (pin[1] === dropdown_pin) {
isVar = false;
break;
}
}
if (isVar) {
var funcName = 'mixly_digitalRead'; var funcName = 'mixly_digitalRead';
var code2 = 'boolean' + ' ' + funcName + '(uint8_t pin) {\n' generator.definitions_[funcName] = 'boolean' + ' ' + funcName + '(uint8_t pin) {\n'
+ ' pinMode(pin, INPUT);\n' + ' pinMode(pin, INPUT);\n'
+ ' boolean _return = digitalRead(pin);\n' + ' boolean _return = digitalRead(pin);\n'
+ ' pinMode(pin, OUTPUT);\n' + ' pinMode(pin, OUTPUT);\n'
+ ' return _return;\n' + ' return _return;\n'
+ '}\n'; + '}\n';
generator.definitions_[funcName] = code2;
code = 'mixly_digitalRead(' + dropdown_pin + ')'; code = 'mixly_digitalRead(' + dropdown_pin + ')';
} else { } else {
if (generator.setups_['setup_output_' + dropdown_pin]) { if (!generator.setups_['setup_output_' + dropdown_pin]) {
//存在pinMode已设为output则不再设为input
} else {
generator.setups_['setup_input_' + dropdown_pin] = 'pinMode(' + dropdown_pin + ', INPUT);'; generator.setups_['setup_input_' + dropdown_pin] = 'pinMode(' + dropdown_pin + ', INPUT);';
} }
if (generator.setups_['setup_setup']) { //解决pullup重复问题 if (generator.setups_['setup_setup']) { //解决pullup重复问题