Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Sziasztok!
Még elég kezdő vagyok a PIC-ekben. Írtam egy programot amiben minden szép és jó, de a watch ablakban a PORTB értéke nem változik. S1 változóé például igen, és a W értéke is. Egy LED-es villogóról van szó, késleltetéssel. #include p18f4550.inc s1 equ 50H INIT clrf TRISB setf TRISA clrf PORTB FO: bsf PORTB, 1 call KESES bcf PORTB, 1 call KESES goto FO KESES: movlw d'5' movwf s1 IDE decfsz s1,1 goto IDE return end Meg még azt szeretném megkérdezni hogy ennél a PIC-nél, miket kell definálni az elején, szval egy proginak az elejét szeretném elkérni, amiben a konfig bit-ek is benne vannak. Mert csináltam egy kis teszt panelt, amit kiszeretnék próbálni, a PORTB-n van 8db LED. Köszönöm szépen!
Az "új szöveges dokumentum.text2"-ben már sikerül csatlakozni az ICD2-höz. Fel is ismeri a pic-ket amit égetni akarok de hibát ad fel mindig.
Szerinted melyik sor jelenti azt, hogy felismerte a pic-et? A docx fájlokat meg inkább hanyagold, szerintem nem sokan fognak csak azért felrakni valamit a gépükre, hogy ezt megnézhessék. Jó az pdf-ben is.
Szia.
Most 16f628a van az ICD2-mhöz csatlakozva és ezt írja ki: Auto-connect not enabled - Not connecting (Try enabling auto-connect on the ICD2 settings pages.) Connecting to MPLAB ICD 2 ...Connected Setting Vdd source to MPLAB ICD 2 Target Device PIC16F628A found, revision = Rev 0x8 ...Reading ICD Product ID Running ICD Self Test ...Passed MPLAB ICD 2 Ready A target device az az nem hogy felismerte a céleszközt, mármint a picet.
Thomas10100,
Eloszor is 18F-eket mar nem szokas abszolut modban programozni, csak relativ modban. Ehhez csupan be kell tenned a linker scriptet a projectbe, es a valtozo deklaralasoknal a 'res' kulcsszot kell hasnzlani. Az MPLAB elpjeen az assembly-t kivalasztva keress ra a 'res' kulcsszo hasznalatara... Masodszor pedig, 18F-nel kozeli ugrasokat nem GOTO ill CALL-al sokas megejteni mert az extra programteruletet foglal el es azonkivul teljesen felesleges. BRA es RCALL utasitasokat nezd meg az adatlapban! Legvegul pedig: Az adatlap a biblia, ott gyonyoruen le van irva peldaprogrammal hogyan kell a PORTB-t felinicializalni. Ott vannak a konfigok is amugy...
Hali!
Na hát ez full nem érthető a számomra amit irtál. Az ugrás az oké, meg az adatlap, de a relativ programozás, pff. Még nem hallottam róla...
Helló!
Olyan kellene amiben 18-as PIC-ek vannak.
A jumpert amikor égetni akarok az ICD2-n a cmos-en és az out-en közé kell rakni nem?
Az ICD2-n és az MPLab-ban nincs ilyan funkció mint az IC-progon hogy le tudom ellenőrizni a kimeneteket, hogy megvannak e rajta a feszültségszintek? Idézet: „A jumpert amikor égetni akarok az ICD2-n a cmos-en és az out-en közé kell rakni nem?” 1. Leírást olvastad? 2. Nincs. De van kapcsolási rajz, egy kis gondolkodás, logikai áramkörismeret alapján nem egy nagy kaland leellenőrizni.
Letöltöd az adatlapját a PIC-ednek és a konfigurációs bitek részt megnézed és szépen bepötyögöd, ami neked kell. Alapbeállításban minden bit '1'-re van állítva, ha jól tudom.
Ami a legfontosabb, hogy az oszcillátor bitjeit állítsd be olyanra, amilyet te kívánsz használni. Szerintem a programod meg sántít, de most annyira nincs kedvem bogarászni. Majd összeszedem magam.
Azt a rohadt...még nem láttam 18-as PIC-ek adatlapját, de ez a configbit-es téma most egy kicsit magas nekem.
Adatlap! Azt nem nézted meg, hogy a B Port-nak milyen funkciói vannak még, és ezért hogyan is kell beállítani.
A config-re meg, nézd csak meg watt honlapját is a "PIC infók, Példák, Leírások" pont alatt.
Idézet: „Na hát ez full nem érthető a számomra amit irtál.” 'Completely' nem 'full' ebben a kornyezetben ha mar Angol szavakat akarsz bele keverni, de ne tedd, ugy fogunk jarni mint az Indiaiak hogy a Hindi mondatok minden masoik szava Angol. Mar igy is tok hulyen hasznaljak a Magyarok a 'hello' szot, meg mas szavakat is ossze-vissza, ne mindegy ehhh. Idézet: „Az ugrás az oké, meg az adatlap, de a relativ programozás, pff. Még nem hallottam róla...” Roviden es tomoren a relativ proramozasnal a linker donti el a valtozok (valamint a program) hova fognak kerulni a memoriaban, azzal neked mint programozonak nem kell torodnod. Ehhez csak be kell tenned a projectedbe az un. linker scriptet - "LKR fileok". Ebbol fogja tudni a linker hova pakolaszhat. Abszolut programozasnal Te magad mondod meg az abszolut cimet a valtozoknak ill program teruleteknek - pl EQU-val ahogy csinaltad, vagy CBLOCK-al ahogy szoktak meg. Az MPLAB helpjeben van egy baromi jo help - tenyleg jo! Ott az assembly reszleget erdemes olvasni, gyakorlatilag mintha konyv lenne (Help / Topics / MPASM Assembler). Erdemes rakeresni a 'linker script' vagy 'res' kulcsszavakra vagy 'relocatable object' szekciot megnyitni es atolvasni mit ir, mert ezeknel a nagy memoriaval rendelkezo joszagoknal mar egyre kezelhetetlenebbe valik mit hova pakol az ember, ill ha odebb kell 'koltozni' memoriaban vagy egy masik PIC-re atterni akkor az abszolut programozas miatt egeszen nehezkesse valhat a dolog.
Mint már említettem kezdő vagyok. Nézd el az egyszerű kis hülye kérdéseimet. Köszi.
Most 16f628a van az ICD2-mhöz csatlakozva és ezt írja ki: Auto-connect not enabled - Not connecting (Try enabling auto-connect on the ICD2 settings pages.) Connecting to MPLAB ICD 2 ...Connected Setting Vdd source to MPLAB ICD 2 Target Device PIC16F628A found, revision = Rev 0x8 ...Reading ICD Product ID Running ICD Self Test ...Passed MPLAB ICD 2 Ready A target device az az nem hogy felismerte a céleszközt, mármint a picet. Idézet: „A target device az az nem hogy felismerte a céleszközt, mármint a picet.” A target device = cel eszkoz. Es igen, kiirja az eszkoz nevet es hogy azt talalta (found). Szoval most akkor mukodik? Vagy hol tartasz? Idézet: „Az "új szöveges dokumentum.text2"-ben már sikerül csatlakozni az ICD2-höz.” Na, ez már fél siker! Idézet: „Fel is ismeri a pic-ket amit égetni akarok” A cannot validate target szerintem nem erre utal. Hogy vannak összekötve? Van valami áramkör a PIC körül, ami bezavarhat? A docx állományok helyett maradjunk a .txt formátumnál (nem mindenki tudja olvasni)!
Nincs áramkör a pic körül.
Simán rá van kötve az ICD2-re az ICD2 pedig egy usb-s kábelen a gépre. Küldök egy text-et hogy eddig meddig jutottam.
Hát eddig jutottam:
Ja, hat 3FFF-et olvasott ki, tehat nem sikerult a programozas. Az ICD kabel milyen hosszu es mibol van? A Vdd es Vss kozott van-e hidegito kondi? Mekkora feszultsegeket mersz a Vdd ill Vpp vonalakon programozaskor?
Idézet: „#include p18f4550.inc ... a PORTB-n van 8db LED.” Vajh, miért is nem a D porton van az a nyolc LED???
usb kábellel van összekötve a gép és az ICD kb 1méter, a pic és az icd pedig 30 cm-es 5 eres szalagkábellel.
Vdd és Vss között nincs kondi. Vdd: 4,90V Vpp: 10,09V de nem kapcsolja rá az mclr-re. Idézet: „Vdd és Vss között nincs kondi.” Tegyél.
Sziasztok
PIC-C-ben szeretnék egy olyat csinálni, hogy van egy szöveg (a PIC-ben CHAR-ként eltárolva), annak megszámolnám, hány karakter hosszú, és ez alapján bontanám le értékekre, hogy egy LCD kijelzőn ki tudjam íratni az adott szöveget. Én ezt magában PIC-ben szeretném, de eddig nem sok sikerrel. Egyáltalán lehet ilyet? Vagy ezt már csak számítógéppel összekötve tudnám megoldani? Üdv vtnagy
Hol van az a szöveg tárolva? Mert megoldani meglehet, csak a mikéntje attól is függ, hogy pontosan mit kell megoldani.
Ilyen módon:
Bocsi, hogy úgy nézve majdnem az egész programot másoltam be, de így a legérthetőbb (nagyon butított verzió). A szöveget lényegében nem tárolom sehol, hanem menet közben adom a text1 változónak az értéket. Azért számok, hogy tudjam, milyen hosszúnak is kellene legyen. Vannak benne egyéb funkciók, azok nem lényegesek ( lcd_config(), char_send() ) Pontosan azt szeretném így elérni, hogy a text1 változó hosszát eltárolom az i változóba, majd ennek a segítségével szeretném ennek a szövegnek az LCD-re való kiíratását megcsinálni, hogy egyesével elküldöm az adott karakter értékének megfelelő kódot. Remélem érted, hogyan szeretném. Üdv vtnagy
Szöveg számára tömböt kell lefoglalni, nem egyetlen bájtot. Pl.
A zárójelben a várható maximális szöveghossz+1 értéket kell írni. Azért a +1, hogy a lezáró null karakternek is legyen hely. Ezután ha írtál valamit bele, akkor a hosszát úgy tudod lekérni, hogy egyesével végigmész rajta, amíg nem futsz rá a null karakterre. Pl.
Bár most nézem, hogy a strlen() is ugyanezt csinálja.
igen, a kondi mindenkeppen kell, 100nF keramia Vdd es Vss koze. 30cm szalag kabel eleg sok zajt ossze tud szedni, azt is erdemes lecsokkenteni - 5cm-nel altalaban nem kell tobb, csak kozelebb kell tenni az ICD2-t az aramkorhoz.
10.09V az eleg keves, de benne van a Vdd+4V es a 12.5V tartomanyban. Az alatt mit ertesz, hogy nem jut el az mclr-ig? Valami szakadas lenne?
Rendben, köszi a segítséget, meglesem
Sajna bátyám elvitte a C-s könyvem, így nem tudom pontosan, mit és hogyan kell, de remélem hazahozza holnap, és nem fogom így fárasztani az embereket Még egyszer köszi! Üdv vtnagy |
Bejelentkezés
Hirdetés |