Strana 6 z 6

Re: WCH32v003 RISC-V MCU

Napísané: 23 Apr 2024, 19:21
od používateľa Dumitru
Myslíš asi C nie C++

Otázka number one prečo v .h súbore máš napísané funkcie hod ich do .c suboru


A možno som paranoidný ale nemám rad nekonečne cykly daj si tam nejaký timeout (premennú) a inkrementuj po jej preplnení radšej vráť nejaký error (return 1,2,3,4) a len keď funkcia dobehne dokonca vráti return 0. Potom v maine to možes kontrolovať . Pretože ak sa ti niekde bude zasekávať sw raz za čas bude problém zistiť kde presne a prečo takto si to môžeš logovať alebo niekam posielať a budeš vedieť ktorá funkcia a v akom while sa zasekla. A pripadne do budúcna vieš nato nejak reagovať napríklad resetnuť i2c zbernicu

Priklad :

Kód: Vybrať všetko

 while ((receive_data_length <= 0) && (timeout < TIMEOUT_DHCPOFFER))  // wait to data or timeout 5sec
  {
    timeout++;
    receive_data_length = w5500_get_receive_data_length(socket_number);
    w5500_delay_ms(1000);

  }

  if (timeout >= TIMEOUT_DHCPOFFER)
  {
    w5500_close_socket(socket_number);
    return 3;  // timeout error
  }
  return 0;
  
samozrejme ten delay môže byť aj obyčajný __NOP

Re: WCH32v003 RISC-V MCU

Napísané: 23 Apr 2024, 19:49
od používateľa Lennox
Dumitru napísal:
23 Apr 2024, 19:21
Otázka number one prečo v .h súbore máš napísané funkcie hod ich do .c suboru
Takto som ti videl v prikladoch na nete, evidentne asi nespravne. Takze zvlast PCF8574.c kde budu funkcie a zvlast PCF8574.h pre zbytok, main moze ostat.