12-08-2016, 09:05 AM
Interapti moraju da traju sto je moguce krace. Tu si skroz u pravu. Red ovih kasnjenja ne znam. Ona zavise od proizvodjaca I2C periferije. Problem je izrazeniji kada imas firmware sa 5 i vise interapta gde stalno jedan drugog prekidaju. Ova situacija sa time-out-om ne mora da se javi. Moze sve lepo da radi, ali posle npr. mesec dana pojavi se ova situacija i nemas pojma zasto se to desilo. Biblioteke za softverski I2C koje prave proizvodjaci kompajlera su zakljucane i nemas pojma sta se tamo desava. Ja ne koristim Arduino i niti sam ga ikada koristio. Koristim iskljucivo sirovi C kompajler i razvijam svoje biblioteke.
Kada se projektuje nesto sa MCU, onda mora da se projektuje tako da se iskoriste hardverski resursi upotrebljenog MCU-a. Ako MCU ima hardverski implementiran npr. UART, SPI, I2C, tajmere itd., onda totalno glupo koristite softverske biblioteke sa pomenute funkcije. MCU tada totalno gubi smisao i kontrola izvrsavanja programa moze da postane nepredvidljiva. Izvrsava se stofverski I2C i u toku izvrsavanja I2C PC je poslao start bit preko UART-a. MCU ne moze da detektuje start bit, zato sto je MCU bio zakucan u rutini za izvrsavanje I2C-a. Ima milion ovakvih situacija.
Moj prijateljski savet je da se potrosi malo vise vremena kako bi se naucilo prvilno iskoriscenje resursa MCU-a i koriscenje interapta. Oni su ti koji nam daju paralelizam u radu. Sve ostalo nema nikakvog smisla.
Pozdrav
Kada se projektuje nesto sa MCU, onda mora da se projektuje tako da se iskoriste hardverski resursi upotrebljenog MCU-a. Ako MCU ima hardverski implementiran npr. UART, SPI, I2C, tajmere itd., onda totalno glupo koristite softverske biblioteke sa pomenute funkcije. MCU tada totalno gubi smisao i kontrola izvrsavanja programa moze da postane nepredvidljiva. Izvrsava se stofverski I2C i u toku izvrsavanja I2C PC je poslao start bit preko UART-a. MCU ne moze da detektuje start bit, zato sto je MCU bio zakucan u rutini za izvrsavanje I2C-a. Ima milion ovakvih situacija.
Moj prijateljski savet je da se potrosi malo vise vremena kako bi se naucilo prvilno iskoriscenje resursa MCU-a i koriscenje interapta. Oni su ti koji nam daju paralelizam u radu. Sve ostalo nema nikakvog smisla.
Pozdrav