Fórum témák
» Több friss téma |
Ebben a leírásban máskép néz ki a 4 bites mód inicializálása...
Semmi kedvem kötekedni.
Én mindig így csinálom az LCD inicializálását, és mindig működik is!
Ez majdnem az, mint a Hp41C által adott leírásba, csak ott 3× írja a 0011-et.
PIC16F887-esem van azzal szeretnék négyszögjelű sweep generátort készíteni 300hz-3khz-ig például
Keressd a DDS algoritmust.
Köszönöm a válaszod!
![]()
Üdv.
Valamit rosszul csinálhatok, mert nekem bármilyen beállításban (kompatibilitási futtatás) ezt a választ adja: delay time less than one clock cycle beállítások: PIC16 család, 1 - 4 - 20 MHz, 100 - 500 ms ill. 1 s - nál is.
Bocsi, rossz verzió volt!
Javítva Bővebben: Link. Azért légyszíves nézd meg ezt is, hogy nálad is működik-e ![]()
Sziasztok! Hol található a pic adatlapján "16f628" hogy hány órjel alatt csinál egy utasítást? Mi ennek a neve? Köszi
Ez nem biztos, hogy benne van az adatlapban, de minden PIC 4 órajel alatt végez egy, egyciklusos utasítást.
Itt is találsz érdekességet, segítséget.
Sziasztok!
Ha nyomógombot szeretnék definiálni akkor az így néz ki ami működik. #define NA (PORTBbits.RB7 == 0) #define N1 (PORTBbits.RB6 ==0) Ha pl a PORTC pl. alsó kettő bitjét szeretném elnevezni akkor azt miként tehetem meg? #define v2k (LATC=0b0000011) vagy #define v2k (LATCbits.LATC1 =1) ?? Így nem vette be. Kicsit most összekeveredtem.
Köszönöm! A hozzászólás módosítva: Okt 7, 2016
Segítséget kérnék.
ASM-ben programozva, PIC16F877A Analóg bemenetről kapok egy 10 bites értéket. Két kérdésem van: 1, hogyan konvertálom LCD-n megjeleníthető 4 számjeggyé? (8 bit-ig megy) 2, hogyan tudok értékműveletet végrehajtani rajta? Pl.: ha a kapott érték nagyobb mint 768 akkor... Kösz. A hozzászólás módosítva: Okt 7, 2016
1. Bővebben: Link Itt van több is, lehet próbálkozni, válogatni.
2. Ilyen vizsgálathoz a SUBLW vagy SUBWF utasítás és a STATUS Z vagy C bitjének az állapotát szokás megvizsgálni. Mivel itt többről van szó mint 8 bit így egy picit macerásabb mert kétszer kell megcsinálni. Célszerűen először azt kell először megnézni, hogy a felső két biten van-e valami egyáltalán, ha nincs akkor könnyű a dolog, mert csak egy byte-tal kell dolgozni. A te példádnál maradva a 768 egy nagyon jó szám, mert csak a felső byte-ot érinti, az alsó tök 0. Tehát a felső bájtból kivonsz 3-at, ha az eredményed nem negatív, akkor biztosan több az ADC értéke mint 768. Remélem érthető.
Az első úgy ahogy van az kínai nekem, még tanulnom kell hozzá.
A másodiknál én is arra jutottam hogy legalább két vizsgálatot kell végezni, de még mindíg nem tudom megjeleníteni. Amit Hp41C linkelt az valamivel érthetőbb, csak zagyvaságokat ír ki az LCD-re. Ránéznél, ha szépen megkérlek?
Ez az egész program? Kicsit hiányos nekem.
Szerk: szerintem az a hiba, hogy ez BCD-be kódol, de az LCD-nek ASCII kell! Innen válassz egy 16 bit to ASCII nevűt: Bővebben: Link A hozzászólás módosítva: Okt 7, 2016
Ez az amit a weblapon találtam, természetesen átírtam a saját projectembe, mivel abban lcd kezelés is van. Nekem már ott hibázott, hogy meghív egy "goto B2D2"-t ami sehol sincs.
![]()
Igazad van ASCII-be alakítva már legalább számokat mutat. A többit már valahogy megfejtem, ha mégsem, majd kérdezek. Addig is köszi a segítséget.
Nagyon dicséretes, hogy megpróbálod megérteni a rutint de nem feltétlen szükséges, legalábbis én nem szoktam. Írok egy egyszerű programot amivel le tudom tesztelni a működését, ha hozza a kívánt eredményt akkor használom, ha nem akkor keresek másikat.
A vége nálam is hasonló lett most, az este már annyira nem fogott az agyam, hogy éjfélre már az A/D konverter sem mozdult meg. Azt hittem hazavágtam a procit. Reggel teljesen elölről kezdtem az egészet. A/D konverter 10 biten LED villogtatás. LCD beüzemelése, szöveg kiíratás. Majd végül az este letöltött konverter rész ASCII-ra konvertálóval kiegészítve. Mostanra jutottam el addig, hogy együtt fut az egész. Jöhet a mért értékek ellenőrzése, függőségek beállítása. De megyek éjszakázni, úgyhogy most pihi.
A hozzászólás módosítva: Okt 8, 2016
Adatlap (DS40044F) 13. oldal.
A 8-biteseknek 8 órajelciklus kell egy (egyszavas) utasítás teljes végrehajtásához, de a részben párhuzamos feldolgozás miatt 4 órajelciklusonként megtörténik ez. Tehát a válasz: 4 (8-biteseknél) (Ja és a kétszavas, ill. elágazó utasításoknál meg 8 ciklus.) A hozzászólás módosítva: Okt 8, 2016
Idézet: „minden PIC 4 órajel alatt végez egy, egyciklusos utasítást.” Ez így ebben a formában nem igaz. A 16- és 32-biteseknél nem így van. |
Bejelentkezés
Hirdetés |