main.c 743 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "gd32e230.h"
  2. #include "SysTick.h"
  3. #include "breaker.h"
  4. #include "mb.h"
  5. #include "led.h"
  6. #include "time.h"
  7. #define MODBUS_ADDR 0x40
  8. #define MODBUS_BON 115200
  9. #define MAX_CHN 6
  10. int main(void)
  11. {
  12. SystemInit();
  13. InitSysTick();
  14. breaker_init();
  15. led_init();
  16. timer_14_init(999, 71);
  17. U8 id= breaker_read_id();
  18. U8 addr = MODBUS_ADDR + (id);
  19. eMBInit(MB_RTU,addr,0,MODBUS_BON,MB_PAR_NONE);
  20. eMBEnable();
  21. breaker_channels_t *channels = get_breakers();
  22. U8 k = 0;
  23. channels->channel[k] = addr << 8 | MAX_CHN;
  24. while(1)
  25. {
  26. eMBPoll();
  27. for(k = BREAKER_CHANNAL_1; k < BREAKER_CHANNAL_ERR;k++)
  28. {
  29. breaker_chn_read(&channels->channel[k],k);
  30. }
  31. led_flash(id);
  32. DelayNms(20);
  33. }
  34. }