Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szia!
Köszönöm, nagyon jó ötlet. A programban van egy 200us timer0 megszakítás is. Valami mégiscsak sántít, mert így nézve a soros vételi megszakítási rutinrészletnek is le kellett vonla futnia. Szia.
Sziasztok!
Sikerült elkészítenem egy kis panelt, amire rákerült egy pic18F1220 és egy DS1307-es óra. Az órával való kommunikációt szoftveres I2C-vel kellene valahogyan összehoznom. MCC18-al fejlesztgetek, amiben van megírt SW_I2C modul. Még régen találtam valahol kimondottan a DS1307 élesztéséhez egy kis c fájlt, de elvesztettem és most hiába kerestem a Googleval. Valaki tudna esetleg küldeni ehhez az órához egy kis c-s példát? Köszi
Ez attól függ, hagyandik a sorban és hogy előtte van-e a Timer int lekezelése, vagy utána.
Jaj de jó! Ezt észre sem vettem. Köszi
![]()
Hali! Szeretnék kis elindulási segítséget kérni. Egy tv távirányítót szeretnék csinálni, hogy az eredeti távirányítóval betanítani a kódot, aztán lehessen azzal is irányítani a tv-t. Csak a szoftver része érdekelne, hogy-hogy kéne megcsinálni. Assemblerben programozom. Ötletek?
Nem tuodm pontosan milyen ötletre számítasz? Egy kimenetet kell megfelelő sebességgel a megfelelő időpontban billegtetni. Ha ezt egy minta alapján teszed, akkor a mintát előbb bitenként el kell tárolni. Az időzítést adhatja egy timer megszakítás, amikor az időponthoz tartozó bit érték kikerül a kimenetre.
A lemásolandó fényimpulzust pedig elemezni kell CCP modullal, hogy a frekit és a kitöltést is le lehessen másolni, értékelni, majd beállítani a kivitelhez. Meg lehet csinálni nagy sebességű mintavételezéssel is, de ahhoz sok memória kell, vagy bonyolult algoritmusok a tömörítéshez.
Próbáltam a linkelt DS1307-es C18 modullal elindítani a kütyüt, de nem sikerült...
Pedig ha jól látom, akkor itt is 32,768-as kristályhoz van beállítva, ugye? #define DS1307_ADDR 0b11010000 #define TIMEPTR 0x00 #define DATEPTR 0x03 #define CONFIGPTR 0x07
Én csináltam ilyesmit, de szerintem jobban jár az ember, ha PC-n elemzi ki a kódokat.
Az IR távirányítók lejetős része azt csinálja, hogy valamilyen impulzusszélesség-modulációt ad ki a kimenetén, de ez a kimenet meg van "szaggatva" egy 36-38kHz környéki frekvenciával. Az IR LED-re a keskeny impulzusok miatt néha A nagyságrendű (!) csúcsáramokat is engednek, így lehetővé téve a nagy távolságok áthidalását. A vivőfrekvenciás módszer a zavarérzékenységet hivatott nagy mértékben csökkenteni, ugyanis a vevőoldalon egy keskeny sávot áteresztő szűrővel figyelik a jel meglétét. Ha ilyen jellegű jelet ad ki magából a távirányító, akkor érdemes egy TSOP1736 vagy TSOP1738 IR vevőmodullal (vagy más hasonló, a típusszám vége a vivőfrekire utal) nekiállni az elemzésnek. Egy ilyen modulnak kell tápfesztültség, a kimenetén pedig akkor lesz aktív (alacsony) jelszint, ha érzékeli a megfelelő frekvenciájú IR impulzussorozatot. A kimenet aktív és inaktív állapotainak hosszát kell megmérni és ezeket az időket kell eltárolni. Az adatok alapján felrajzolható az "oszcillogram", azaz az a jelsorozat, amit a távirányító kódadója kiad magából. Általában szabályos, mindössze néhány féle hosszakat fogunk találni a jelek és szünetek hosszában. Előfordulhat az is, hogy ugyanazt a gombot többször egymás után megnyomva két különböző sorozatot fogunk felváltva kapni, vagy egy gombot nyomva tartva is többféle eshetőséggel találkozhatunk: lehet, hogy csak egy "ismáéétlés" kódot fog folyamatosan küldeni az irányító és az is lehet, hogy a lenyomott gomb kódját, sőt, a lenyomott gomb kódját is küldheti egy kis változtatással jelezve, hogy az folyamatos nyomás. Nomost azért írtam, hogy szerintem ezt PC-n érdemes kielemezni, mert ott van mód grafikusan megjeleníteni, (akár emberi beavatkozással is) uniformizálni az impulzus- és szünetidőket, majd ezek alapján már egy "visszaböfögő" programot viszonylag egyszerűen össze lehet ütni PIC-re is. Ha csak az impulzusidőket figyeli egy PIC és azt próbálja eltárolni, ahhoz rengeteg helyre is szükség lenne, biztosan nem elég a saját belső EEPROM-ja, ha pedig értelmezni is akarja az ember a sorozatot, az túl "sok változós" a különböző távirányítók miatt. Persze ha csak egyféle kódra akarjuk megtanítani (pl. RC5 vagy NEC), akkor arra lehet jó tanulóprogit írni, arra elég lehet egy PIC is.
Jónapot mindenkinek!
Az volna a kérdésem hogy av16-os panelt lehet-e külön venni?Igazság szerint nem szeretnék venni 1 15000ft-os könyvet a panelért, de a panelra szükségem lenne.a ChipC@d oldalán nem találtam meg külön.Valaki tud valamit erről?Előreis köszönöm:Katona Ábel
Annyi kiderült, hogy halott a PIC. Holnap veszek még belőle, mert fogyóeszköz.
![]()
Üdv!
A pickit2 starter kit leckéit csinálom és felmerült bennem egy kérdés. Bankváltáskor, ha mondjuk a 0. bank van kiválasztva és át akarok váltani a 2-es bankra, akkor elegendő a STATUS regiszter RP1 bitjét 1-re állítani, vagy mind a két bitet, az RP1-es és RP0-ás bitet is állítani kell? Mindezt csak azért kérdem, mert a példaprogramban mind a kettő bitnek újra értéket adnak, de nem tudom, hogy ezt csak a jobb érthetőség miatt van így, vagy ezt így kell csinálni. Hogy egyértelmű legyen csatolom a példaprogramot.
Üdv mindenkinek!
A ismét a segítségeteket szeretném kérni! A problémám oka a következő: találtam egy TCN75-ös I2C s hőmérséklet érzékelőt és egy 16F874 es PIC et tartalmazó áramkört amihez a szerző az asm állományt is feltette az oldalra. Mivel nekem itthon csak 18F4321 akad ezért megpróbáltam átírni a kódot több kevesebb sikerrel...ugyanis akármit csinálok csak ez jelenik meg az LCD-n: "-01 fokC" szerintetek a kóddal lehet gond vagy máshol keressem a hibát? köszönöm a segítségeteket! megadom az oldal linkjét hátha érdekel valakit: http://jervin.uw.hu/index.php?page=tcn75 illetve csatolom az irományomat is Előre is köszi a segítséget! Idézet: Igen„ha mondjuk a 0. bank van kiválasztva és át akarok váltani a 2-es bankra, akkor elegendő a STATUS regiszter RP1 bitjét 1-re állítani?”
Ez így már túlzás! ![]()
Rendben, köszönöm! Én is kicsit értetlenül néztem, hogy most akkor ezt miért?
![]() Az adatlapot olvasgatva találkoztam olyannal utasítással is, hogy BANKSEL. Jól gondolom, hogy ezt is lehet bankváltásra használni, úgy hogy megadom neki a regiszter nevét és akkor arra a bankra vált amiben az adott regiszter található? Mert akkor inkább ezt használom az előző helyett.
Keress rá a keresővel a banksel szóra ebben a témában!
Idézet: „Az adatlapot olvasgatva találkoztam olyannal utasítással is, hogy BANKSEL. Jól gondolom, hogy ezt is lehet bankváltásra használni, úgy hogy megadom neki a regiszter nevét és akkor arra a bankra vált amiben az adott regiszter található? Mert akkor inkább ezt használom az előző helyett.” Igen, ezt inkabb javasolt hasznalni, bar errol azert annyit erdemes tudni, hogy ez nem utasitas, csupan egy a forditonak szolo direktiva amibol a fordito majd a megfelelo utasitasokat legeneralja. Ugy is tekintheted mint egy makro.
Nincs valakinek kódja hogy lehet mp3 lejátszót csinálni egy pic24-ből meg egy flash kártyából?
Rossz a DIV16 szubrutin. Ha már átvitted 18-asra szerintem keress 18-ra való matematikai könyvtárat. Mivel ebben van szorzó utasítás az osztás is gyorsabb lesz, meg talán működni is fog. Az meg egy másik kérdés hogy van ennél jobb módszer is az LCD-re számokat kiírni.
Tudnál segíteni hogy pontosan hol van a hiba? Nem igazán látom át a dolgot
![]() ![]() köszi!
Azt nem tudom, de nekem többféle számkombinációban 0-t adott eredményül.
Hali!
Elsö programomat szeretném megírni egy pic16f628-ra.próbálom legegyszűbb programtól felépíteni fokozatosan. Elő lépésben minden lábra egyet szeretnék adni, de vmiért nem megy. tudna vki segíteni nekem ebben? list p=16F628 ; list directive to define processor #include p16F628.inc ; processor specific variable definitions errorlevel -302 ; suppress message 302 from list file __config _HS_OSC&_CP_OFF&_WDT_OFF CBLOCK 0x20 T1 T2 T3 ENDC LCD_E Equ .4 org 0x0000 Initialise clrf PORTA clrf PORTB movlw 0x07 movwf CMCON SetPorts bsf STATUS, RP0 ;select bank 1 movlw b'00000000' ;make all pins outputs movwf TRISB bcf STATUS, RP0 clrf PORTB ciklus movlw b'11111111' movwf PORTB goto ciklus end ez lenne a progi, tudom van pár plusz sor benne, de ezek a későbbiekben játszanának szerepet. ez a progi nem ad egyik lábra sem jelet, csak az oszcillátor megy. a segítséget előre is köszönöm, denisz
Szia!
Az oszcillátor beállítása biztosan jó (tényleg HS)? Az MCLR láb fel van húzva 5-10k-val tápra? Ha nincs akkor ezt tedd meg, vagy tiltsd le szoftverből. A kerámia kondenzátor (100n- 1uF) ott van a táplábaknál? Így első körben ennyi jutott eszembe. Idézet: „Nincs valakinek kódja hogy lehet mp3 lejátszót csinálni egy pic24-ből meg egy flash kártyából?” Akkor már inkább dsPIC33. Bővebben: Link Ezt a fórumot is érdemes megnézni, ebben olvasható a specifikáció. Resources requirements: Flash: ~9.5 kBytes of code + ~11 kBytes of const (8% of dsPIC33FJ256GP710) SRAM: ~25 kBytes of data + ~1.5 kBytes of stack (88% of dsPIC33FJ256GP710) CPU usage: 33.6 MIPS (32 kHz / 128 kbps / stereo) 6.8 MIPS ( 8 kHz / 20 kbps / stereo) Limitations: MPEG1 Layer 1 and Layer 2 is not support 16-bit arithmetic used mad_port_stereo_intensity_lsf() func work incorrectly (TODO)
Köszi!
Ez egész jónak tűnik, van belőle kit is, talán érdemes is lenne megrendelni, csak nem egészen világos, hogy a 15 dollár az szállítással vagy az csak a szállítás. http://www.teuthis.com/daisy/index.html
Szia!
Ez vicces! ![]() A kérdésedre a válasz: a 15$ az csak a külföldre (USA- n kívül) irányuló posta ára, maga a KIT 115$. Így is megéri? ![]() Üdv.
Na most mar en is megneztem azt az oldalt. Hasonloan El Pinyo-hoz en is csendben maradtam, pedig akartam mondani egy mp3 dekodolo chip-et kellene alkalmazni mint ahogy azt a linken lathato project is teszi...
De valoszinuleg arban jobban megeri az a dsPIC-es project... Lehet nem bonyas atirni 24H-ra sem, bar lehet tevedek.
Pont azért másoltam be lentebb a specifikációt, hogy jelezzem: ha a dsPIC33FJ256GP710 is láthatóan csak "alulról közelíti" a kívánalmakat, akkor aligha érdemes erőlködni a szoftveres MP3 dekódolással.
PIC24-ben kevés lesz a RAM és hiányozni fognak a DSP utasítások.
Van itt egy topik ahol a VS1011 MP3 dekóder IC-t ajánlják, ami a Lomex-nél 1042 Ft + ÁFA.
|
Bejelentkezés
Hirdetés |