Fórum témák
» Több friss téma |
A projektből küldtem a fájlokat , csak egy szük kodrészletet tettem fel mert ott a bajom, a bánatom ugyanaz , hogy a pic által mért adatokat nem tudom megjeleníteni a weboldalon, max lehet rosszul írtam le.
Nagyon köszönöm az eddigi segítséget. 12f683Sziasztok!pic12f683 picet használok. A GPIO5 lábat kimenetként szeretném használni, de nem akar kimenetként működni. Igazából lóg a levegőben. A mainban lehet, hogy hiányzik valami.
A configuration bits-ben az oscillátor INTOSCIO-ra van állítva?
Szia! Ezt hol tudom állítani?
Fordítótól függően, például a config macroval:
vagy pragma-val:
Microc-ben programozok. Abban a macro ugye jó?
Ott nem tudom mi van, a fentiek xc8-ban használhatóak.
A microc Ben az osszcilátort a projekt tulajdonságoknál modosítható ,bvalamint az osscon és osctune byteok helyes beállításával.
GY21 cím kiolvasásNagyon régen programoztam PicbasicPro-ba és most kellene egy páratartalom mérő amihez GY21-et választottam de nem tudok még címet sem kiolvasni, 20Mhz -en 16f877-t használok. Mit csinálok rosszul? Valaki tudna segíteni?DEFINE OSC 20 DEFINE I2C_SLOW 1 SDA VAR PORTB.4 SCL VAR PORTB.0 TRISB.4 = 1 TRISB.0 = 1 OPTION_REG.7 = 0 address VAR BYTE ack VAR BYTE found VAR BYTE LCDOUT $FE, 1, "I2C kereses..." PAUSE 1000 found = 0 FOR address = $08 TO $7F ' I2CWRITE SDA, SCL, address, 0, ack IF ack = 0 THEN found = 1 LCDOUT $FE, $C0, "Cim: ", HEX2 address PAUSE 2000 ENDIF NEXT address IF found = 0 THEN LCDOUT $FE, $C0, "Nincs eszkoz!" ENDIF END
Szia!
Ehhez a programhoz nem értek, de nem világos minden nekem. Van logikai analizátorod? Az sokat segít ilyen esetben. De ha a PIC a master, és az adja ki az órajelet is, akkor annak a lábnak nem digitális kimenetnek kell lennie? Mert mintha most input lenne. IGEN, tévedtem, azok jók, bocsánat! De persze tévedhetek is, mert itt van ez: I2CWRITE Lehet ez a függvény beállít mindent, bár nem tudom hogy ebben a környezetben ez a lib hogy van meghívva. Illetve nem tudom, hogy minden regisztert beállít-e ez a függvény vagy sem. Nem lehetne C-ben? Mplab X-el megoldani a problémát? A hozzászólás módosítva: Márc 18, 2025
Mert elvileg itt egy jó leírása az egésznek, amiben kódok is vannak. A .h fájlokat meg kell csinálni és utána include-al berántani. A keresést meg ciklusba tenni.
Bővebben: Link
PIC16F877ASziasztok!Most kezdek PIC-el foglalkozni, de már is elakadtam. Lehet-e a PIC16F877A PIC EEPROM memoriáját előre beprogramozni karaktergenerátornak és, ha igen hogyan? Egy rövid leírás és egy program jól jönne! Köszönettel.
Szia!
Először is milyen nyelven írod a programot? Másodszor pedig, ha most kezdesz el a PIC programozással foglalkozni, szvsz nem pont az eeprom kezeléssel kellene kezdeni.
Ha nem tudom megoldani a karaktergenerátort nem is érdemes foglalkozni, hogy mely nyelven írom a programot! Amúgy minden tanácsot, segítséget örömmel fogadok.
Idézet: Akkor legyen XC8-ra pár példa:„nem is érdemes foglalkozni, hogy mely nyelven írom a programot” Fordítás közben EEPROM tartalom készítése (egyszerűsített változat):
XC8 belső funckióit használva:
Igény szerint, saját funkció (PIC16F18426-hoz írtam):
Tényleg kellene pontosítani pár dolgot. Legfőképpen azt, milyen nyelven akarsz programozni, melyik fejlesztőkörnyezetet akarod használni. Milyen karakterket, milyen kijelzőhöz akarsz generálni? Biztos vagy, a műszaki szemmel nézve őskövület, PIC16F877A használatában? Ez utóbbi annyira nem kritikus meg talán jobb is egyszerűbbel kezdeni, de jó ha tudod, ma már eljárt felette az idő.
Köszönöm a választ. Valóban grafikus kijelzőhöz kell és olyan ami nem felejti el kikapcsolás után sem, tehát mint egy PROM, EPROM vagy EEPROM. Külső karaktergenerátort tudok készíteni EPROM
2732 -vel a gond hogyan kerül be a PIC -be? A PIC16F877A a kezdőknek ajánlott, elnyűhetetlen PIC alapján került képbe és a sok IO miatt!
Az EEPROM mérete nevezett PIC-ben 256 bájt. Ha egyre gondolunk, a 2732-es EPROM 4096 bájtot tud tárolni. Ha a PIC programmemóriáját is felhasználod, akkor 256 + 8192 bájtnyi területed van.
Bekerülni a már említett módon tud. Esetleg a programmemóriát használva (pl. egy CRC tábla DS18B20 hőmérő IC-hez):
Köszönöm a választ és az önzetlen segítséget! Én nem akarom mindkettőt ezért szeretném, ha már a PIC tartalmazná a karaktergenerátort. (A PIC EEPROM területe elegendő.) Említetted a PIC16F877 már elavult típus. Ha tudsz (szerintem igen) ajánlani modernebb hasonló tulajdonságokkal rendelkező típust tedd meg. (Még nincs kész tervem csak most alakul.) A programírást MPLAB x IDE (MPLAB-v.6.25) a feltöltést pickit3 segítségével gondoltam. (A pickit3 összes kisegítője megvan!) Ha továbbra is tudsz segíteni előre is köszönöm!
PIC16F877 helyett 16F877A, 16F887, 16F1937, 18F2620, 18F46Q84 stb.
Idézet: Nem teljesen értem ezt a részt. A karakter generálása és annak tárolása két külön dolog. Generálni azzal generálod, amivel neked egyszerű, akár papíron is meg lehet csinálni. Az EEPROM (és/vagy a programmemória) adatokat tud tárolni, a feltöltésre írtam pár példát.„szeretném, ha már a PIC tartalmazná a karaktergenerátort” 40 lábú PIC-ből van sok típus. Hacsak valami extra szolgáltatás nem kell, én PIC18F47Q43-at szoktam használni (EEPROM: 1024 bájt), az kb. mindenre elég, sőt. Nekem egyszerűbb így, mégha néha túl sokat is tud a feladathoz képest de nem kell megtanulnom 20 különböző adatlapot (és errata doksit), egyszerre többet véve általában van mennyiségi kedvezmény is. Csináltam már belőle három számjegyes nyomásmérőt is hétszegmenses kijelzővel. A tudásának kb. 0.2 %-a lett kihasználva de nem vacakoltam kisebb/régebbi kontrollerrel (eleve nagyon ügyes ADC van benne). PIC16F877A: 2800 Ft nettó PIC18F47Q43: 1200 Ft nettó
Jó meglátások, valahogy nem jutott eszembe a lista:
LED villogtatás, "Hello world!" stb.
Lehet előrébb jutnánk ha leírnád pontosan milyen célt szeretnél megvalósítani. Az eddigiekből én nem vagyok meggyőződve róla, hogy neked feltétlenül az eeprom-ra szükséged.
A perifériás mező a gyors mozgásokra van kihegyezve.
Ott a "sípoló" led is zavar hogy villog. Annak ellenére hogy az idegrendszer 40...60Hz-en ketyeg elvileg.
Lehet igazad van! Tehát kell egy 40 - ig számláló számláló és ezt az értéket megjeleníteni, PORTB (grafikus kijelzőn) és (PORTC) hex adatként kivezetni. A folyamat közben minden számváltás után a PORTC fennmaradó egyik kimenetén jelenjen meg egy beíró impulzus. (L). A számláló nullázza önmagát. (0-39) A számlálót PORTA (nyomógombról) léptetni előre-hátra. Ezért lenne jó, ha mindkettő (számláló és karaktergenerátor) PIC -en belül lenne. A fennmaradó 6 db PORTA bemenet nyomógomb lenne és mindig a számláló által kijelölt értéknél váltana L és H színt között. (A szint váltást én végezném.) Ez lenne a PORTD ( 6 db) kimenet. Ezt a kimenetet kell látni a PORTB kimeneten is. Röviden ennyi!
Kérlek csak akkor foglalkozz ezzel ha időd és energiád is van hozzá! Köszönettel.
Szia!
Meg tudnád itt mutatni, hogy milyen kijelzőre gondoltál pontosan? Milyen nyomógombra? A kimeneteknek hány biteseknek kell lennie?
Idézet: Tehét ha jól értem a PORTA valamelyik két lábára kötnél két nyomógombot, egyet az előre, egyet a hátra léptetéshez, ami egy számlálót 0-39-ig léptet. Ez eddig nem sima ügy. A grafikus kijelző kezelése már kicsit macerásabb, de az sem nagy gond (írtam cikket róla jópár éve). A HEX megjelenítése a PORTC-n részt nem egészen értem. Hogyan akarunk HEX adatot megjeleníteni egy 8 bites porton. Simán lehet, hogy én vagyok lemaradva valamiről, de ennek a megoldását nem igazán látom még. Jó lenne egy kapcsolási rajz is, hogy biztosan értsük a dolgot. „Tehát kell egy 40 - ig számláló számláló és ezt az értéket megjeleníteni, PORTB (grafikus kijelzőn) és (PORTC) hex adatként kivezetni.”
Először is köszönet Neked hogy ezzel foglalkozol!
Igen a rajz sokat segít a megértésben. Így elkészítettem az első változatot amely szerintem a FÓRUM tagok segítségével még változni fog. Remélve nem követtem el nagy hibákat így most feltöltöm.
Valami más formátumban vagy jobb minőségben kellene feltenni, mert alig kivehető rajta bármi is.
|
Bejelentkezés
Hirdetés |











