rewrite_for_hd774
Eggert Jung 5 years ago
parent 934542fd3d
commit b87e2b846d

@ -12,19 +12,23 @@
#include "lcd.h" #include "lcd.h"
#include "i2c.h" #include "i2c.h"
#include "modbus.h" #include "modbus.h"
#include "menu.h"
volatile uint16_t holdingRegisters[4]; volatile uint16_t holdingRegisters[10];
void modbusGet(void) { void modbusGet(void) {
if (modbusGetBusState() & (1<<ReceiveCompleted)) if (modbusGetBusState() & (1<<ReceiveCompleted))
{ {
switch(rxbuffer[1]) { switch(rxbuffer[1]) {
case fcReadHoldingRegisters: case fcReadHoldingRegisters:
i2c_start(0x71);
holdingRegisters[0] = i2c_readNak();
i2c_stop();
case fcPresetSingleRegister: case fcPresetSingleRegister:
case fcPresetMultipleRegisters: case fcPresetMultipleRegisters:
modbusExchangeRegisters(holdingRegisters,0,4); modbusExchangeRegisters(holdingRegisters,0,4);
lcd_home(); lcd_set_position(holdingRegisters[1], holdingRegisters[2]);
lcd_write("test %x", holdingRegisters[0]); lcd_write("test");
break; break;
default: default:
modbusSendException(ecIllegalFunction); modbusSendException(ecIllegalFunction);
@ -33,6 +37,26 @@ void modbusGet(void) {
} }
} }
void do_buttons(){
//i2c_start(0x71);
//uint8_t buttons = i2c_readNak();
//i2c_stop();
////TODO error handling
//if(buttons & (1 << 0))
// set_item(1);
//else if(buttons & (1 << 1))
// set_item(2);
//else if(buttons & (1 << 2))
// set_item(2);
//else if(buttons & (1 << 2))
// set_item(3);
//else if(buttons & (1 << 3))
// set_item(4);
//else if(buttons & (1 << 4))
// set_item(5);
}
int main(void) int main(void)
{ {
i2c_init(); i2c_init();
@ -47,8 +71,11 @@ int main(void)
TCCR0B|=(1<<CS01); //prescaler 8 TCCR0B|=(1<<CS01); //prescaler 8
TIMSK0|=(1<<TOIE0); TIMSK0|=(1<<TOIE0);
draw_menu();
while(1){ while(1){
modbusGet(); modbusGet();
do_buttons();
} }
} }

@ -1,5 +1,5 @@
TARGET = main TARGET = main
FILES = main i2c lcd modbus FILES = main i2c lcd modbus menu
MCU = atmega328p MCU = atmega328p
PROGC = m328p PROGC = m328p
CC = avr-gcc CC = avr-gcc

Loading…
Cancel
Save