Fórum témák
» Több friss téma |
Szia!
Az analóg funkciót is le kell tiltani, az ANSELH-ról ne feledkezz meg !
Sziasztok!
Egy PIC32MM-el szeretnék CRC-t generálni, egy soros adat integritásának ellenőrzésére. Elég sokat olvasgattam a témában, de sajnos még mindig vannak sötét foltok... Ezt a kódot használom CRC-8 generálására, ami működik is jól.
Olvastam több helyen, hogy ettől a bit-ről bitre számolós módszertől a kereső táblás módszer 10x gyorsabb. Sajnos ezt a táblás módszert nem igazán értem. Nagy vonalakban valaki eltudná nekem ezt magyarázni hogyan is működik? A hozzászólás módosítva: Nov 23, 2020
Lásd példa (DS18B20-hoz is használható). Bejövő bájtok B0 - B7.
Köszi, és a táblát hogy generáltad?
A tábla végül is a CRC polinomból generálható 256 változat?
A táblázatot találtam valahol. Nem ellenőriztem, de minden bizonnyal onnan származik. Ezzel generálsz magadnak egy CRC bájtot, a vevő oldalon szintén ezzel ellenőrzöd, nagy baj nem lehet.
Rendben. Viszont pont arra lennék kíváncsi, hogyan tudnék generálni egy ilyen táblát egy polinomból a PIC-ben.
Itt van egy leírás: CRC Basics, vagy itt: Understanding and implementing CRC (Cyclic Redundancy Check) calculation.
Köszi srácok!
Sikerült összehozni, közben meg is értettem. Sok byte ellenőrzésére ez sokkal gyorsabb. Bemásolom, hátha valakinek jól jön, azért nézzétek át. Ez most működik:
Egyébként a polinomot mi alapján választják ki?
MM-ben nincs HW CRC?
A polinom a "trukk" az egeszben, de ezt mar kitalatak helyettunk melyik polinomok a legjobbak de, ajanlom ben eater crc-s videoit o beszel a polinomokrol is.
A CRC -val fel nem derített hiba aránya a hossztól függ: 1 / 2^n. Ez csak akkor teljesül, ha a polinom primitív polinom, azaz nem írható fel két vagy több polinom szorzataként.
Szerintem maradok a CRC8-CCITT -nél, ennek a polinomja 0x07.
Egyébként az MM-ben van CRC modul a DMA vezérlőhöz. Viszont DMA-t jelenleg nem használok. Ideje lenne már megtanulnom azt is...
Sziasztok!
PIC16F887-ben nem tudok az RB1 portról megszakítást generálni. Mellékelem a megszakítás kódját és a regiszterek beállítását.
A hozzászólás módosítva: Nov 25, 2020
Első ránézésre:
- Az INTCON GIE bitjét csak akkor állítsd be, ha már minden elő van készítve: TRIS, ANSEL regiszterek, komparátor, stb. - A PORTB megszakítás beérkezése után a PORTB regiszter kiolvasásával tárolódik az űj minta, amihez képest figyeli a következőkben a változás. Ez egyben meg is szünteti a PORTB megszakítás kérést.
Szia!
Úgy néz ki, hogyha az INTCON bitek beállítására, az általad felsorolt regiszterek beállítása után kerül sor, van megszakítás, az RB1 porton levő gomb megnyomása után. Köszönöm szépen!
Sziasztok!
A TMR4 és TMR6-ot ugyanúgy külön-külön lehet használni mint a TMR2-t? Csak azért kérdem mert mind a háromnak van külön periódusszámlálója de úgy hallottam hogy ezeket a 8bites számlálókat együtt kell vagy lehet használni. Össze lehet kapcsolni őket egy 16bites számlálóként. Nem akarom összekapcsolni őket, csak kérdem hogy teljesen külön más más beállításokkal lehet-e használni őket. Előre is köszi a segítséget!
Alapesetben önálló modulok, külön-külön életet élnek. Általában nem pontosan egyformák, pl. a 18F26K22-ben csak a TMR2 tudja órajellel ellátni az MSSP modult.
Az összekapcsolás valószínűleg csak lehetőség, már amelyikben ez a fícsör benne van.
Értem, köszi. Nálam az adatlapon csak TxCON és TxTMR ..stb van. Nézegettem a regisztereket és vannak T0TMR -től T6TMR -ig, de csak a TMR2, 4, 6 -nél van PR. Ez is T2PR, T4PR, T6PR -ként van jelölve, ami tök jó, csak nem tudtam hogy külön is lehet őket használni. A periódusidő számlálós időzítők szerintem sokkal jobbak.
Azért van az adatlapon TxCON, mert így egyszerűbb leírni, olvasni, mintha T2CON, T4CON és T6CON-t írnának mindenhova, vagy háromszor leírnának mindent a három időzítőhöz, miközben a tartalom egyezik. Erre viszont van utalás az adatlapban.
Akkor jól gondoltam, köszi. Ezt még nem találtam meg de rákeresek az adatlapon. Csak az tűnt fel hogy a regiszterekben ott vannak de az adatlapon meg nem láttam őket.
A 18F27K40 most tényleg túl van egy kicsit bonyolítva, vagy csak én látom annak más PIC-ekhez képest mint pl. a 18F26K80.
A hozzászólás módosítva: Nov 25, 2020
Már láttam, új stílusú adatlap, szerintem borzasztó. Az életben nem fogom megérteni hogy ami jól működik és kielégíti az igényeket, miért kell piszkálni.
Akkor jó, köszi. Azt hittem hogy csak nekem ilyen furcsa.
Szerintem már túl sokat tud
- A timer 2, 4, 6 stb. modult külön lehet használni, egyedi beállításokkal is.
- Azokon a típusokon, amik rendelkeznek konfigurálható logikai cellákkal (CLC), a timer -ek kimenete felhasználható a másik timer órajelének is. Ld 18F2xQ43
Értem, köszi. Épp most nézegetek egy 18F27Q43-ast. Ez talán egy kicsit egyszerűbb és szimpatikusabb is mint a 18F27K40-es.
Sziasztok!
Mplabx -ben ha nincs olyan PIC ami éppen kellene a projekt létrehozásánál, akkor van valami lehetőség valahogy beintegrálni valahonnan? Előre is köszi a segítséget!
Hali!
Az aktuális MPLABX van feltelepítve, vagy régebbi? Esetleg választhatsz ugyanabból a családból nagyobb testvért regiszter szinten elképzelhető hogy felülről kompatibilis (általában amik egy adatlapban vannak tárgyalva).
Felraktam egy régebbit mert az újjal valami gond volt. Eddig az MPLABX v5.40 volt de kicseréltem a v3.00 -ra.
Itt meg nincs semmiilyen Q43 -as sorozat, de még 18F27K40 sincs.
Szia
Van már v5.45, ami kiküszöbölte az 5.40 hibáit - legalábbis MAC-en. Q43-as persze van benne. |
Bejelentkezés
Hirdetés |