Эх сурвалжийг харах

Выбросил CONTROL_PIN. Исправил ощибку в макросах PinSet и PinRes. SoftSPI временно перевёл на digitalWrite."

Vladimir N. Shilov 9 жил өмнө
parent
commit
3fe0d1295f

+ 0 - 4
app/application.cpp

@@ -41,10 +41,6 @@ void init()
 
 	ActiveConfig = loadConfig();
 
-	// Select control line
-	pinMode(CONTROL_PIN, OUTPUT);
-	PinRes(CONTROL_PIN);
-
 	//wait for sensor startup
 	delay(1000);
 	// DHT sensor start

+ 20 - 13
app/max7219.cpp

@@ -13,10 +13,6 @@
 #include "configuration.h"
 #include "max7219.h"
 
-// защёлка
-#define MAX7219_LOAD1			PinSet(PIN_LOAD)
-#define MAX7219_LOAD0			PinRes(PIN_LOAD)
-
 #define MAX7219_ON				0x01
 #define MAX7219_OFF				0x00
 #define MAX7219_BRIGHT			0x08
@@ -46,7 +42,9 @@ static void spi_SendByte (uint8_t DataByte) {
 
 void MAX7219_writeData(uint8_t reg, uint8_t data)
 {
-    MAX7219_LOAD0; // опустили защёлку
+//    PinRes(PIN_LOAD); // опустили защёлку
+	digitalWrite(PIN_LOAD, LOW);
+
 //    spi_SendByte(reg);
 //    spi_SendByte(data);
 
@@ -54,17 +52,23 @@ void MAX7219_writeData(uint8_t reg, uint8_t data)
 	uint8_t i; // счетчик бит
 	uint16_t sdata = (reg<<8) || data;
 	for (i=16; i!=0; i--) {
-		PinRes(PIN_CLK); // выдали строб
+//		PinRes(PIN_CLK); // выдали строб
+		digitalWrite(PIN_CLK, LOW);
 		if (bit_is_set(sdata,15)) { // если старший бит == 1
-			PinSet(PIN_DIN); // MOSI = 1
+//			PinSet(PIN_DIN); // MOSI = 1
+			digitalWrite(PIN_DIN, HIGH);
 		} else { // если старший бит == 0
-			PinRes(PIN_DIN); // MOSI = 0
+//			PinRes(PIN_DIN); // MOSI = 0
+			digitalWrite(PIN_DIN, LOW);
 		}
-		PinSet(PIN_CLK); // защёлкнули строб
+//		PinSet(PIN_CLK); // защёлкнули строб
+		digitalWrite(PIN_CLK, HIGH);
+
 		sdata <<= 1; // сдвиг влево на 1 бит
 	}
 
-    MAX7219_LOAD1; // подняли защёлку
+//    PinSet(PIN_LOAD); // подняли защёлку
+	digitalWrite(PIN_LOAD, HIGH);
 }
 
 void MAX7219_Init(void) {
@@ -72,9 +76,12 @@ void MAX7219_Init(void) {
 	pinMode(PIN_LOAD, OUTPUT);
 	pinMode(PIN_DIN, OUTPUT);
 	pinMode(PIN_CLK, OUTPUT);
-	PinSet(PIN_LOAD);
-	PinSet(PIN_DIN);
-	PinSet(PIN_CLK);
+//	PinSet(PIN_LOAD);
+//	PinSet(PIN_DIN);
+//	PinSet(PIN_CLK);
+	digitalWrite(PIN_LOAD, HIGH);
+	digitalWrite(PIN_DIN, HIGH);
+	digitalWrite(PIN_CLK, HIGH);
 
 //	Настройка MAX71219
 	MAX7219_writeData(MAX7219_MODE_DECODE, 0x7B); // без BCD декодирования 2 и 7

+ 3 - 2
app/webserver.cpp

@@ -172,6 +172,7 @@ void onApiSensors(HttpRequest &request, HttpResponse &response)
 /*
  * Управление выводом. кандидат на удаление.
  */
+/*
 void onApiOutput(HttpRequest &request, HttpResponse &response)
 {
 	int val = request.getQueryParameter("control", "-1").toInt();
@@ -186,7 +187,7 @@ void onApiOutput(HttpRequest &request, HttpResponse &response)
 	if (val == -1) json["error"] = "Wrong control parameter value, please use: ?control=0|1";
 	response.sendJsonObject(stream);
 }
-
+*/
 void startWebServer()
 {
 	if (serverStarted) return;
@@ -195,7 +196,7 @@ void startWebServer()
 	server.addPath("/", onIndex);
 	server.addPath("/api", onApiDoc);
 	server.addPath("/api/sensors", onApiSensors);
-	server.addPath("/api/output", onApiOutput);
+//	server.addPath("/api/output", onApiOutput);
 	server.addPath("/config", onConfiguration);
 	server.setDefaultHandler(onFile);
 	serverStarted = true;

+ 4 - 5
include/configuration.h

@@ -10,17 +10,16 @@
 	#define WIFI_PWD "Heaven-32847"
 #endif
 
-#define PinSet(pin)		GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, pin)
-#define PinRes(pin)		GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, pin)
+#define PinSet(pin)		GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, ((uint16_t)1<<(pin)))
+#define PinRes(pin)		GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, ((uint16_t)1<<(pin)))
+#define PinOut(pin, val)	GPIO_REG_WRITE((((val != LOW) ? GPIO_OUT_W1TS_ADDRESS : GPIO_OUT_W1TC_ADDRESS)), (1<<pin));
 #define Pin16Set		WRITE_PERI_REG(RTC_GPIO_OUT, (READ_PERI_REG(RTC_GPIO_OUT) & (uint32)0xffffffff))
 #define Pin16Res		WRITE_PERI_REG(RTC_GPIO_OUT, (READ_PERI_REG(RTC_GPIO_OUT) & (uint32)0xfffffffe))
+#define Pin16Out(pin, val)	WRITE_PERI_REG(RTC_GPIO_OUT, (READ_PERI_REG(RTC_GPIO_OUT) & (uint32)0xfffffffe) | (uint32)(val & 1));
 
 // Pin for communication with DHT sensor
 #define DHT_PIN 2
 
-// Pin for trigger control output
-#define CONTROL_PIN 16
-
 // MAX7219
 #define PIN_DIN		14
 #define PIN_CLK		13