Fórum témák
» Több friss téma |
A kepleteket itt talalhatod meg a Baud rata kiszamolasahoz: DS70000582E-page 12.
Ha BRGH=0 => ((50*10^6)/(16*9600))-1=324.52 Ha BRGH=1 => ((50*10^6)/(16*9600))-1=1301
A 16F628A komparátorát belső referenciával használnám. Jól gondolom-e, hogy a nem használt bemeneteket testre köthetem? (Az adatlap - más módozatoknál - a nem használt komparátor bemeneteket így mutatja.)
Így csináltam: ((62,5*10^6)/(16*9600))-1=405,9, tehát 406-ot állítottam be.
Az UART-ot jól csatolom a megfelelő lábakhoz?
A TX az RB8-as labra van csatolva, az RX is ugyanarra. Echo uzemmodban akarod hasznalni?
Az orajelet most 125Mhz-en jaratod?
Nem echoban, külön külön lábra szeretném. Igen, számításaim szerint most 125MHz-en működik és ezt egy Timer-el teszteltem.
Egy másik lábra hogy lehetne átrakni, pl a mellette lévőre vagy a Tx-et vagy az Rx-et?
Köszönöm szépen!
Délután kipróbálom. Jó ez hogy bárhová kapcsolhatom a perifériákat, csak még nem igazodtam ki rajta teljesen. ![]()
Sziasztok!
Meg tudná valaki mondani, hogy az alábbi PIC-ben lévő két ADC (12 & 16 bit) tud-e egyszerre, egy időben működni és mintavételezni 1-1 lábon? Illetve mennyi a maximális késleltetés, ha nem? PIC24FJ128GC006 Köszönöm a választ!
Sajnos még így sem jó...
Csatolom a komplett kódot. d betű helyett 0xd2-t küld. Én már nem értem....
A hozzászólás módosítva: Okt 19, 2015
A 12-bites nagy sebességű és a 16-bites szigma-delta A/D átalakító két külön periféria, tehát egymástól függetlenül (párhuzamosan, egy időben) képesek működni. (Viszont az általuk kezelt csatornákat mindegyik felváltva ill. sorban mintavételezi, így az egy egységen belüli mintavételezések nem egy időben történnek.)
Sziasztok!
Egy programozható, LCD kijelzővel rendelkező rendelkező időzítőt szeretnék készíteni. Pontosabban már készítettem, csak az a gondom vele, hogy a PIC-et a fölös időkben nem tudom aludni küldeni, mert akkor nem megy az óra. Ez miatt egy hónap alatt lemerülnek az elemei. Ezért az lenne a kérdésem, hogy létezik-e olyan nagyon alacsony fogyasztású, kimondott óra IC, amit le hehet kérdezni?
Létezik, RTC -ként keress adatlapot. pl. MCP794xx ill. MCP795xx
A timer1 működik külső órajelről a sleep állapotban is. PL 32.768kHz -es quartz -cal járatva lehet pl. másodpercenként megszakítást kérni, azzal felébreszteni a kontrollert, elvégezni az idő módosítását és a többi feladatot, majd lealtatni.
Jelen pillanatban is külső quartz-cal megy, de csak levettem a frekijét. Tehát, ha aludni küldöm, attól még az óra menni fog, és felébreszti a PIC-et a megszakítási rutin? Illetve csak felébreszti, mint pl. egy külső jel, vagy ki is váltja a megszakítást?
Idézet: „Tehát, ha aludni küldöm, attól még az óra menni fog..” A belső órajel leáll sleep módban, de a timer1 külső órajel generárora nem áll le. Idézet: „és felébreszti a PIC-et a megszakítási rutin” Amennyiben a timer1 megszakítás engedélyezett és a PEIE is engedélyezett a timer1 átfordulása felébreszi a kontrollert. Hogy megszakítás is lesz -e, azt a GIE bit értéke határozza meg. GIE == 1 esetén a kontroller végrehajtja a sleep utáni utasítást és a megszakítás kiszolgáló rutinra ugrik. GIE == 0 esetés a sleep utáni utasításokkal folytatja a programot.
Köszönöm szépen.
Így már valószínűleg tovább fogják bírni az elemek.
Uraim,
18F46K22 16MHz-es Kristállyal 4PLL 64MHz-en járatva, C18-ban, ha 1us-t akarok elérni, akkor használhatom a delay.h könyvtár függvényeit? Tehát a következő szerint számoltam:
A fentebbi kód elvileg 1us-t fog eredményezni. Egy DS18B20-al kínlódom már pár napja, és nem értem mi lehet a baja. Már mindenre gondolok legfőbbként az időzítésekre, de nem jövök rá a hibára. Csatolom a proteus projektet is, hátha valaki tudna segíteni.
Ha kijavítod az i==0 -át i>0 -ra, akkor működnie kéne. Pontos nem lesz, nézd meg a szimulátorban.
Nyilván ma a ciklus miatt is lehet elcsúszás, de megközelítőleg 1us-lesz az eredmény, elvileg.
A DS18B20-nak elég pontos időzítés kell, de sajnos ezzel a megoldással sem működik a szenzor. Kicsit frusztrál a dolog ![]()
Nézzél rá, hogy a ciklus sosem fut le i==0-val!
Én előbb egy egyszerű késszel próbálkoznék, ott kiderül egy és más. A hozzászólás módosítva: Okt 20, 2015
Működik!
Szuper! 1,3mA-ról 0,035mA-re esett vissza nyugalmi állapotban az áramfelvétel. Így már mindját más. Mégegyszer köszönöm.
A gyáriét használtam eddig, de semmi eredmény.
Igen ezt az i==0-t benéztem, javítottam, de eredményt persze nem hozott. Sok mindent kipróbáltam már, de valamiért nem tudom működésre bírni a DS18B20-at.
Nemrég keresgéltem ilyesmi, ami egyszerű, jól áttekinthető, ezt találtam, de nem volt még időm kipróbálni.
A hozzászólás módosítva: Okt 20, 2015
Igen ezt is próbáltam már, nekem nem működik valamiért ez sem, meg semelyik amit eddig találtam. Volt pár napom amit beleöltem a dologba, ezért kérek segítséget mert nem megy valamiért, és kifogytam az ötletekből.
Csak most már tanácstalan vagyok, hogy a PIC miatt, esetleg az időzítések miatt vagy valamit nem veszek észre? Passz.
Saleae logic 8 nincs véletlenül a közelben. Képes a 1-wire protokol értelmezésére...
A hozzászólás módosítva: Okt 20, 2015
Még csak szimulál, ha jól értettem
![]() Írtam neki, hogy mérje meg az időket szimulátorral, de nem reagált még rá. A hozzászólás módosítva: Okt 20, 2015
Sajnos nincs, egyébként élőben, élesben is tesztelem, hogy biztosra tudjak menni.
kissi: hehe ![]() ![]() A hozzászólás módosítva: Okt 20, 2015
Ha nem megy, akkor vagy rossz az a DS ( nem jellemző!) vagy rosszak az időzítéseid ! Ezt viszont méréssel lehet kideríteni ( vagy szimulációval, HEHE
![]()
DS1307
Távol keletről akár 1 Euróért is postázzák (Tiny RTC I2C modules) elemmel - elemtartóval, plusz EEprommal ...
Szerintem praktikusabb IC-be integrált kvarccal 1$ -ért. Bővebben: Link
Sziasztok!
PIC24EP512GU814 -et debuggolok, és folymatosan AddressError trap-ban látom. A main függvény első utasításán breakpoint, de nem jut el addig. Hogyan tudhatom meg hogy honnan jutott az addressTrap-ba? A Call Stack és Call Graph nem mond semmit, csak hogy épp melyik sorban áll a program. Ha a void _ISR _AddressError(void) -ban megállítom, még az LNK #0x0 végrehajtása előtt, akkor WREG14 = 0x2FF0 és WREG15 = 0x1908. A 0x1908 címen 0x2FF0 van, a 0x2FF0 címen pedig 0xFE18, de nem igazán értem hogy ezekből hogy jön ki a visszatérési cím. (mert gondolom a trap-ot kiváltó utasítást követő utasításra fog mutatni a visszatérési cím.) Ugye nem lehetséges, hogy az XC16 olyan inicializáló részt fordít a programom elé, ami trap-al elszáll??? |
Bejelentkezés
Hirdetés |