Fórum témák
» Több friss téma |
Kipróbáltam, nem lett jó, szintén hibát dobott!
Bakman kolléga javaslatára ez lett a jó megoldás: FCV_OW_CRC=CRCTABLE[FCV_HANGERO]; Köszönöm Neked is, hogy foglalkoztál ezzel a problémával.
Sziasztok,
adott egy konstans létrehozása ami így nézki: FLAGS equ 0x5D létrehoztam egy FLAGS elnevezésű állandót aminek értéket is adtam : 0x5D (dec 93) ezután a parancs után ha kiadom a CLRF FLAG parancsot , mi fog történni ez egy gyári programrészletben van amit nem értek. A constans nullázható?
Szia!
Nem jól értelmezed ! A Idézet: azt jelenti a fordítónak, hogy a FLAGS ezentúl 0x5D-t ér, így ha ki adsz egy olyan parancsot, hogy CLRF FLAGS, akkor az a 0x5D cella tartalmát fogja törölni ( persze lehet, hogy vannak BANK módosító bitek!) ! „FLAGS equ 0x5D”
Használd inkább a helyfoglaló direktívákat...
Persze az összes változót, ami egy területen van, létrehozható egy ilyen egységgel:
PIC24FV16KM204-nél van minimum Vdd elvárás EEPROM íráshoz? Az adatlap "Electrical Characteristics" fejezete 3.6V Vmin-t tüntet fel olvasáshoz (Vdd for Read). Íráshoz nincs hasonló bejegyzés.
Tápkimaradásnál szeretnék írni az EEPROM-ba. Rosszabb esetben 3.6-4V lenne a pufferkondiban az EEPROM írás befejeződésekor.
A programozási leírása alapján 2.0 és 5.5V közötti tápfeszültséggel programozható, a Bulk Erase parancshoz minimum 2.5V szükséges.
Nem számítottam rá, hogy a flash memória programozási leírásában kellene keresni az EEPROM működés közbeni programozási feszültségeit.
Furcsállom, hogy a PIC24FV16KM204 family kézikönyvében a 276. oldalon Vdd for Read Vmin=3.6V. Olvasáshoz kell egy minimum, íráshoz nem? A normál tápellátás-frekvencia viszonyában is eléggé zavaros a dokumentáció. A 17. oldal szerint 2-5.5V 32MHz. A 266-267. oldalakon a feszültség-frekvencia grafikonok alapján az industrial 5V-os 32MHz-en 3.2V-tól felfelé táplálható, az extended (ez van nekem) 24MHz-en 3.2V-tól. Ezek alapján nem megy 32MHz-en az extended?
Szerintem a 3.6V a maximum. Ezt aztán meg senki sem érti, hiszen a 24FV sorozatnak 5.5V a maximális megengedett tápfeszültsége.
Ebben is igazad van, de abszolút nem logikus. Az F-nek 3.6V az üzemszerűen megengedett legnagyobb tápfeszültsége. Szerintem erre vonatkozik az adat, csak nem írták ki. (Az FV-nek 5.5V.)
Nekem ebből úgy tűnik, hogy az íráshoz is elegendő a legminimálisabb tápfeszültség. Tápellátás frekvencia viszonya: FV - I (Industrial): For frequencies between 8 MHz and 32 MHz, FMAX = 20 MHz * (VDD – 2.0) + 8 MHz. FV - E (Extended): For frequencies between 8 MHz and 24 MHz, FMAX = 13.33 MHz * (VDD – 2.0) + 8 MHz. Az E verzió Vdd=3.8V-al elvileg mehetne 32MHz-en a képlet szerint, de nekem ebből úgy tűnik 24MHz az elérhető maximum. A hozzászólás módosítva: Ápr 3, 2018
Egy világcég ha már be tudta vezetni a Vmin -t, akkor csak sikerült volna a Vmax is.
Nagyfokú trehányság nyoma ez. A hozzászólás módosítva: Ápr 3, 2018
Srácok, gondolom ez már egy régi probléma és biztosan volt már róla szó, de nem találom a topik-ban. PIC16F684-et szeretnék éleszteni, de az MPLAB mindig a következőre hivatkozik:
Idézet: „PK2Error0028: Unable to enter debug mode” Esetleg nem támogatott ez a kontroller PicKit2 esetében?
Debug header board. AC162055 Bővebben: Link
Külön adapter kell hozzá, hogy lehessen debugolni? Kész..
Külön PIC (PIC16F684-ICD), hogy a nyomkövetés ne kössön le lábat.
Köszi, akkor hagyom.
Majd kiméregetem, hogy mit szúrtam el, ennyit nem ér a dolog..
Nem is értem mit vártál egy 16F684-től. Maximum az enhanched midrangben számíts debugolási lehetőségre a 8 biteseknél header nélkül.
Rendben, nem fűztem hozzá, hogy az újabb szériákban is lehet, mint csatoltad is, (F1X és F7x), de számomra ez nem is kérdés. Mindenesetre köszönjük a kiegészítést.
Sziasztok!
Fordulatszám mérőt készítenék és egy kicsit belegabalyodtam a bitekbe. Az elképzelés az lenne, hogy CCPx bemeneten érkeznének a jeladótól az impulzusok, fordulatonként 1 db. Az impulzus hatására mentődik a Timer1 értéke, ebből számolok, ez idáig rendben is lenne. De mi van akkor ha a két impulzus között a Timer1 túlcsordul? És nem azért mert olyan sokáig nem jött impulzus, hanem mert mondjuk az egyiket akkor kapta, amikor már elérte a csúcsértéket? Hogyan lehet ezt normálisan kezelni? Impulzus után töröljem a számlálókat? Mivel ez egy pici időbe telik, így ez már pontatlanságot visz a dologba. Vagy ennyinek bele kell férnie?
Én is szeretnék hasonló dolgot csináltatni (egy nagy feladat kis részeként) PIC24F-el. Úgy emlékszem a timer léptetési ideje beállítható (az órajel leosztásával), illetve nálam volt nagyobb bitszélességű timer választási lehetőség is (ha a kisebb nem lenne elég). A timert a hardver kezeli elvileg automatikusan, nem kell törölni. Emlékezetből írom, tévedhetek.
Ha megadnád a PIC típusát és a fordulattartományt, talán segítene, hogy pontosabb választ kapj.
Szia!
A Capture funkciót használod, így nem kell törölnöd. Bejön az impulzus, elmented TMR1_start-ot, majd TMR1_stop-ot. Ezután előjelesen számolod a periódusidőt T = TMR1_stop - TMR1_start, ha pozitív, akkor semmi, ha negatív, akkor közben túlcsordult, így a helyes eredményhez kompenzálnod kell a túlcsordulási idővel ( hozzá kell adnod 65536-ot ! ) ! Az előjeles műveletet persze megoldhatod másképp is !
Ha csak egyszer fordul át, nem kell vele törődni, a kivonás helyes értéket ad. Ha többször is túlcsordulhat azt már figyelni kell pl. egy TMR megszakításban, de itt már más problémák is előjöhetnek.
Mondjuk, hogy lessen debugolni, alapból? Nagy elvárás lett volna tudom én is.
Idézet: „Ha csak egyszer fordul át, nem kell vele törődni, a kivonás helyes értéket ad.” Tegyük fel az induló érték 10, átfordul a számláló, a következő érték 12, hát szerintem nem mindegy, hogy átfordult vagy sem!
Szia!
Elvileg igen, általában lehetne probléma, de ezt írta: Idézet: , azaz nem lehet hosszabb az idő, mint az átfordulási idő ( 65536 * Tléptet ), csak nem nulláról indul! „És nem azért mert olyan sokáig nem jött impulzus”
Igen, de ez az eset pont nem az amiről beszélünk (amikor negatív lenne a kivonás eredménye). De ha mondjuk az előző érték 10, a következő pedig 8, akkor a 8-10=-2 (08-0A= FFFE) ami 65534.
Idézet: „Mondjuk, hogy lessen debugolni, alapból?” Válaszd a PIC16F882/883/884/886/887 családot! Ha jól emlékszem, a PIC16F887 volt a PICkit2 Debug Express ( DV164121) MCU-ja.
Kipróbáltam, igazad van, jó eredményt kaptam vissza. Köszönöm!
|
Bejelentkezés
Hirdetés |