gtf testing:wq

master
agsler 3 years ago
parent 55641ce8cb
commit f878693e6e

@ -108,8 +108,8 @@ void ioHelperEdgeDetector(void);
#define BitPinD7 16 //I16 #define BitPinD7 16 //I16
#define BitPinG2 17 //I17 #define BitPinG2 17 //I17
#define BitPinG1 18 //I18 #define BitPinG1 18 //I18
#define BitPinD3 10 //INO #define BitPinD3 19 //INO
#define BitPinD2 11 //IN1 #define BitPinD2 20 //IN1
#define BTN_HEIZEN_AN BitPinK2 #define BTN_HEIZEN_AN BitPinK2
#define BTN_HEIZEN_AUS BitPinK3 #define BTN_HEIZEN_AUS BitPinK3

@ -1,12 +1,15 @@
#include "modbus-master.h" #include "modbus-master.h"
#include "gefran_gtf.h"
#include <stdint.h> #include <stdint.h>
#define FIRMWARE_VERSION 120
uint16_t gtf_firmware_version(uint8_t address){ uint16_t gtf_firmware_version(uint8_t address){
return gtf_read_register(address, GTF_FIRMWARE_VERSION);
}
uint16_t gtf_read_register(uint8_t address, uint8_t reg){
uint16_t val = 0; uint16_t val = 0;
readReg(address, FIRMWARE_VERSION, 1); readReg(address, reg, 1);
int8_t res = wait_receive(1, &val, 250); int8_t res = wait_receive(1, &val, 30);
if(!res) if(!res)
return val; return val;
@ -14,3 +17,24 @@ uint16_t gtf_firmware_version(uint8_t address){
return res; return res;
} }
int8_t gtf_write_register(uint8_t address, uint8_t reg, uint16_t value){
writeReg(address, reg, value);
return wait_write(100);
}
int8_t gtf_read_coil(uint8_t address, uint8_t coil){
uint16_t val=0;
readCoil(address, coil);
uint8_t res = wait_receive_coil(20);
if(res)
return -1;
return val;
}
int8_t gtf_write_coil(uint8_t address, uint8_t coil, uint8_t val){
writeCoil(address, coil, val);
uint8_t res = wait_write(100);
if(res)
return -1;
return val;
}

@ -1,2 +1,15 @@
#include <stdio.h>
#define GTF_PV 0
#define GTF_OuP 3
#define GTF_FIRMWARE_VERSION 122
#define GTF_OPERATING_HOURS 161
#define GTF_BAUDRATE 24
#define GTF_SETPOINT 27
#define GTF_POWER 106
uint16_t gtf_firmware_version(uint8_t address); uint16_t gtf_firmware_version(uint8_t address);
uint16_t gtf_read_register(uint8_t address, uint8_t reg);
int8_t gtf_write_register(uint8_t address, uint8_t reg, uint16_t value);
int8_t gtf_read_coil(uint8_t address, uint8_t coil);
int8_t gtf_write_coil(uint8_t address, uint8_t coil, uint8_t val);

@ -142,7 +142,6 @@ int main(){
// INIT MCU // INIT MCU
avr_init(); avr_init();
spi_init(); //SPI Master, MODE0, 4Mhz(DIV4), CS_PB.3=HIGH - suitable for WIZNET 5x00(1/2/5) spi_init(); //SPI Master, MODE0, 4Mhz(DIV4), CS_PB.3=HIGH - suitable for WIZNET 5x00(1/2/5)
//spi_speed_tst(); / Here on SPI pins: MOSI 400Khz freq out, on SCLK 3.2MhzOUT (Witk SPI CLK 4Mhz)
ioHelperInitBuffer(); ioHelperInitBuffer();
ioHelperIoConf(); ioHelperIoConf();
@ -203,6 +202,9 @@ int main(){
#endif #endif
//printf("anlage: %x\n\r", read_Input(IN_ANLAGE_EIN_INV, LEVEL)); //printf("anlage: %x\n\r", read_Input(IN_ANLAGE_EIN_INV, LEVEL));
gtf_write_register(5, 54, 1);
gtf_write_register(5, 55, _BV(4));
gtf_write_register(5, 56, 100);
while(1) while(1)
{ {
@ -228,18 +230,13 @@ int main(){
mqtt_pub(&mqtt_client, "/Filamentanlage/01_Extruder/kraft", msg, strlen(msg)); mqtt_pub(&mqtt_client, "/Filamentanlage/01_Extruder/kraft", msg, strlen(msg));
#endif #endif
//modbus_io_set_Output(4, 0, TOGGLE); printf("gefran 54: 0x%02X\n", gtf_read_register(5, 54));
//printf("gefran: 0x%02X\n", gtf_firmware_version(1)); printf("gefran 55: 0x%02X\n", gtf_read_register(5, 55));
//printf("gefran: 0x%02X\n", gtf_firmware_version(2)); printf("gefran 56: 0x%02X\n", gtf_read_register(5, 56));
//printf("gefran: 0x%02X\n", gtf_firmware_version(3));
//printf("gefran: 0x%02X\n", gtf_firmware_version(4)); printf("gefran pv: 0x%02X\n", gtf_read_register(5, GTF_PV));
//printf("gefran: 0x%02X\n", gtf_firmware_version(5)); printf("gefran oup: 0x%02X\n", gtf_read_register(5, GTF_OuP));
//printf("gefran: 0x%02X\n", gtf_firmware_version(6)); printf("\n");
//printf("gefran: 0x%02X\n", gtf_firmware_version(7));
//printf("gefran: 0x%02X\n", gtf_firmware_version(8));
//printf("gefran: 0x%02X\n", gtf_firmware_version(9));
//printf("gefran: 0x%02X\n", gtf_firmware_version(10));
//printf("\n");
} }
if(millis() - timer_read_slave > 200){ if(millis() - timer_read_slave > 200){
@ -283,9 +280,9 @@ int main(){
#if PLC_MQTT_ENABLED #if PLC_MQTT_ENABLED
// send misc info // send misc info
if(millis() - timer_send_uptime > 5000){ if(millis() - timer_send_uptime > 5000){
timer_send_uptime += 5000; timer_send_uptime = millis();
char msg[64]; char msg[64];
sprintf(msg, "%ld", millis()/1000); //sprintf(msg, "%ld", millis()/1000);
mqtt_pub(&mqtt_client, "/Filamentanlage/01_Extruder/uptime", msg, strlen(msg)); mqtt_pub(&mqtt_client, "/Filamentanlage/01_Extruder/uptime", msg, strlen(msg));
} }
#endif #endif

@ -8,8 +8,14 @@ FILE uart_output = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
void uart_init() void uart_init()
{ {
DDRD |= 1 << 1; // TX DDRD |= 1 << 1; // TX
UART_BAUD_REGH = (BAUDRATE>>8); UART_BAUD_REGH = UBRRH_VALUE;//(BAUDRATE>>8);
UART_BAUD_REGL = BAUDRATE; // set baud rate UART_BAUD_REGL = UBRRL_VALUE;//BAUDRATE; // set baud rate
#if USE_2X
UART_CTRL_REGA |= (1 << USE_2X);
#else
UART_CTRL_REGA &= ~(1 << USE_2X);
#endif
UART_CTRL_REGB |= (1<<UART_TXEN_BM) UART_CTRL_REGB |= (1<<UART_TXEN_BM)
//|(1<<UART_RXEN_BM) //|(1<<UART_RXEN_BM)

@ -1,9 +1,11 @@
#ifndef _UART_H_ #ifndef _UART_H_
#define _UART_H_ #define _UART_H_
#define BAUD 115200
#include <stdio.h> #include <stdio.h>
#include <util/setbaud.h>
#define BAUD 9600
#define BAUDRATE ((F_CPU)/(BAUD*16UL)-1) #define BAUDRATE ((F_CPU)/(BAUD*16UL)-1)
#define UART_BAUD_REGH UBRR0H #define UART_BAUD_REGH UBRR0H