Hirdetés
- Megtartotta Európában a 7500 mAh-t az Oppo
- Netfone
- Sok földi jó került a Redmi K90-be is
- Bemutatkozott a Poco X7 és X7 Pro
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Milyen okostelefont vegyek?
- Örömhír: nem spórol Európán a OnePlus
- iPhone topik
- Amazfit Helio Strap – képernyőmentesen
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Blasius
tag
válasz
vargalex
#19710
üzenetére
Na, tálalhatóbb formába hoztam a kódot. Íme:
const byte numChars = 128;char receivedChars[numChars];bool newData = false;void setup() {// put your setup code here, to run once:Serial.begin(9600);Serial.println("<Johet>");}void loop() {// put your main code here, to run repeatedly:recvWithStartEndMarkers();showNewData();}void showNewData() {if (newData == true) {Serial.print("new data came:");Serial.println(receivedChars);newData = false;}}void recvWithStartEndMarkers() {static boolean recvInProgress = false;static byte ndx = 0;static byte ndxmea = 0;byte endKa = 0x0a;byte startKa = 0x24;byte starKa = 0x2a;byte nmea = 0x00;char rc;char nmeaRd[2];long nmeaRdL;bool inhibi = false;while (Serial.available() > 0 && newData == false) {rc = Serial.read();if (recvInProgress == true) {if (rc != endKa) {//delay(2);//?????????????????????????????????????????????????????????????????if (inhibi == true) {nmeaRd[ndxmea]=rc; ndxmea++;}else if (rc == starKa) {inhibi = true;}else if (inhibi == false){nmea ^=rc; receivedChars[ndx] = rc; ndx++;//delay(1);//?????????????????????????????????????????????????????????????????if (ndx >= numChars) {ndx = numChars - 1;}}}if (rc==endKa) {nmeaRd[2] = '\0';char * pEnd;nmeaRdL = strtol(nmeaRd, &pEnd, 16);if (nmeaRdL==nmea){receivedChars[ndx] = '\0';} // terminate the stringelse {memset(receivedChars, '0', 6); receivedChars[7] = '\0';}recvInProgress = false;ndx = 0;ndxmea = 0;newData = true;nmea =0;inhibi=false;}}else if (rc == startKa) {recvInProgress = true;}}}A második függvényben lévő késleltetések (...delay(x)/???...) nélkül a kód nem megy rendesen. Viszont, ahogy Aryes tippelte, a késleltetéssel jól megy. Ha késleltetések helyett sorosra írás lenne akkor is menne jól. Hát, kicsit tákolt, de megy. Gondolom erre mondják hogy nem egy robosztus kód
. De most már kíváncsi vagyok hogy mi lehet ennek a furcsa viselkedésnek az oka
.
(nmea ...^=rc... az egyfajta crc számítás. A startKa karakter utáni karakterekre kell számolni. Aztán a soroson jön egy * (starKa), egy byte két karakter hex ascii-ként (00-FF, ez a crc) majd egy 0x0a karakter (sorvég). Ha a számolt és fogadott crc egyezik, akkor kiírja sorosra ami jött ahogy van. Ha a crc nem stimmel akkor kinullázza az első pár karaktert.)
Ez egy rendes arduino unon fut (atmega chip).
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- exHWSW - Értünk mindenhez IS
- Elektromos autók - motorok
- Tudományos Pandémia Klub
- Filmvilág
- Megtartotta Európában a 7500 mAh-t az Oppo
- Házimozi belépő szinten
- Elon Musk billiomos lesz, ha kitör a gépek forradalma
- Microsoft Office és Office 365 topic
- Vicces képek
- További aktív témák...
- Bontatlan! Új Lenovo Thinkpad T14 G5 Tartós Üzleti Laptop 14" -45% Ultra 7 165U 16/512 FHD+ Magyar!
- Bomba Ár! Fujitsu LifeBook E751 - i5-2GEN I 4GB I 500GB I DVDRW I 15,6" HD I Cam I W10 I Gari!
- Bomba ár! Dell Latitude E6440 - i5-4GEN I 8GB I 256SSD I 14" HD I HDMI I Cam I W10 I Garancia!
- Bomba ár! Dell Latitude E6540 - i5-4GEN I 8GB I 500GB I HDMI I 15,6" HD I Cam I W10 I Garancia!
- Bomba Ár! Lenovo ThinkPad E15 G4 AMD - Ryzen 5 5625U I 8GB I 256SSD I 15,6" FHD I HDMI I W11 I Gari
- 0% THM 4 havi részlet beszámítás! RX 9060 XT / 9070 / 9070 XT videokártyák készletről KAMATMENTESEN
- GYÖNYÖRŰ iPhone 15 Plus 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3355, 100% Akkumulátor
- Samsung Galaxy S21+ / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- Gamer PC-Számítógép! Csere-Beszámítás! R5 8400F / RX 6800 16GB / 32GB DDR5 / 1TB SSD
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő
. De most már kíváncsi vagyok hogy mi lehet ennek a furcsa viselkedésnek az oka
.
ekkold

