Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
C18-as és PIC18F97J60-at használok.
A CustomHTTPApp.c-ben így van megadva a jelszó kérés:
Nekem van egy változóm,
Hogyan tudom megváltoztatni úgy a kódot, hogy ennek a változónak az értéke legyen a jelszó? Sikertelenül próbáltam ezeket:
Most keresgélek valami kezdőknek szánt könyvet, csak ugye az ismeretlen felfedezése dolog. Itt a próbapanel, legalább csinálna valamit. Nem egy könyvtárban voltak, de betallóztam. Lehetett ez a hiba??
Köszi a segítséget!
Idézet: Igen, erre céloztam.„Nem egy könyvtárban voltak, de betallóztam. Lehetett ez a hiba?” Ez pl. működő megoldás:
Ez is működik, ha az MPLAB jól van beállítva:
Nézegetheted a honlapomon a PICula projektet is, bár én PIC18F4520-at használok.
A txt-ben ott a hibák leírása. Mi lehet a gond?
Szerintem a strcmppgm2ram helyett strcmp függvényt kellene használnod a harmadik próbálkozásodban.
A processzor leíró állománya legyen legelöl, csak utána jöhet a beallit.inc:
Amugy miert BYTE tombot csinaltal char helyett?
A Microchip Application Library-ban BYTE-nak hívják az unsigned char típust. Lásd GenericTypeDefs.h!
PIC-kwik: Hosszú szünet után újra elővettem a régi tervemet. Némi áttervezéssel (a PIC18F14K50 elforgatása és a 3,3 V stabilizátor hátoldalra helyezése) sikerült elérni kitűzött célt: "A nagy szám az volna, ha mindezt (néhány átkötés árán) egyoldalas NYÁK-on sikerülne összehozni."
Az első példány elkészült. A nyúzópróba és némi átpofozás után valószínűleg cikk is lesz belőle. A panel a PIC-kwik projekt-hez, illetve R. Reese, B. Jones és J. W. Bruce: Microcontrollers: From Assembly Language to C Using the PIC24 Family c. könyvéhez ajánlott. PICCOLO: Tegnap órákat szenvedtem egy ultrahangos távolságmérő szenzor beüzemelésével. A CCP1 modul Input Capture módját szerettem volna használni impulzusszélesség mérésére. Hosszú időbe tellett,mire rájöttem, hogy fordítva definiáltam az éldetektálást (lefutó majd felfutó a felfutó majd lefutó helyett). Aztán csak derengeni kezdett, hogy mi a baj... A szenzort egyébként baráti áron ($10) sikerült beszerezni a "kínai piacon" (E-bay). Egy 10 us hosszúságú jellel triggerelhetjük az eszközt, s a válaszul kapott impulzus szélessége adja meg a visszhang megérkezési idejét.
Az odaig rendben van de ha jol ertettem a peldat ez egy egyszeru jelszavas authentikacio akar lenni, ahol ugye a felhasznalo az adatokat char -kent szedi be (hisz senki sem fog csak szmaokkal dolgozni, azt tul egyszeru lenne feltorni)
C18-nál a char alapértelmezetten előjeles bájtként kezelődik, ami nem túl értelmes dolog. Az unsigned char pedig egy kicsit hosszú, gondolom ezért vezették be rá a BYTE rövidítést.
Alternatív megoldás lehet: a Project/Build Options/Project menüben a C18 opciói között be lehet jelölni, hogy a char típust előjel nélküli számként kezelje a fordító. Idézet: A program szempontjábó teljesen mindegy, hogy számjegyeket vagy betűket írunk be, számára mindegyik egy-egy számmal (a karakter kóddal lesz ábrázolva). Az unsigned char típus használata csak arról szól, hogy ezeket ne kezelje már előjeles mennyiségként a program. „az adatokat char -kent szedi be (hisz senki sem fog csak szmaokkal dolgozni, azt tul egyszeru lenne feltorni)”
Igen, ez az ANSI C-ben is igy van, szerintem ezzel nincs igazan gond. Viszont ha ezt valasztja az ember akkor pl castolgatni kell, meg meg kell rola gyozodni, hogy a karakter osztalyozo foggvenyek stb mind ezt a tipust hasznaljak, hogy ne legyen kesob ebbol gond. Bar lehet nincs is, csak felvetodott bennem.
Idézet: Így van, célszerű az átvett támogató könyvtár konvenciójához alkalmazkodni. „Viszont ha ezt valasztja az ember akkor pl castolgatni kell, meg meg kell rola gyozodni, hogy a karakter osztalyozo foggvenyek stb mind ezt a tipust hasznaljak, hogy ne legyen kesob ebbol gond.”
Sziasztok!
A következőben kérnék segítséget. A progit assemblerben írtam. 16 bites PIC-ról van szó (PIC24HJ64GP206A) Az alábbi műveletet szimuláltam (MPLAB SIM) W12 és W13 regiszterek tartalmát kell összehasonlítani Ha W12 kisebb mint W13, akkor 102-ről 104-es sorra ugrik, ha nagyobb akkor tovább lép 103-ra. 100 mov #0x1111,W12 101 mov #0x1000,W13 102 cpslt W12,W13 ;Ha W12 kisebb, mint W13 ugrás 104-re 103 nop 104 nop Ha W13-ba hex. 1000 rakok, akkor 103-ra lép. Ez OK Ha W13-ba pl. hex. 2222-t vagy egészen max. hex. 7FFF-et teszek, akkor 104-re lép. Ez is OK Ha W13-ba hex. 8000 vagy nagyobbat teszek (Egészen hex. FFFF-ig), akkor 103-ra lép. Vagyis úgy értékeli, hogy hex. 8000 „kisebb” mint hex. 1111. Mi történik hex. 8000 felett? Hogy lehetne ezt a lépést úgy megoldani, hogy hex. 8000 felett is működjön az összehasonlítási művelet? Egy konkrét feladathoz kellene a megoldás. A példát könnyebb érthetőség miatt leegyszerűsítettem.
A CPSLT utasítás előjeles összehasonlítást végez, ezért ha a szám legmagasabb helyiértékű bitje '1', akkor azt kettes komplemenssel ábrázolt negatív számnak tekinti.
A honlapomon a PIC-kwik projekt nyitólapján alul megtalálod a kötelező olvasmányokat, benne a dsPIC30F/33F Programmer's Reference Manual-t. Ez (és csak ez) ismerteti részletesen a 16 bites Microchip vezérlők utasításkészletét. Ajánlott olvasmány: ez az oldal, különös tekintettel az "Egyenlőség és nem egyenlőség vizsgálata" c. részre.
Köszi a segítséget, át fogom tanulmányozni.
Esetleg más módon hogy lehetne megoldani, hogy a legmagasabb helyiértékű bitet ne alőjelnek vegye, hanem számnak?
Az ajánlott fejezetben az "Összehasonlítás, elágazás előjel nélküli feltételvizsgálattal" c. szakaszból kiderül. Valószínűleg két utasítás kell hozzá, cserébe viszont nem csak egy utasítást ugorhatsz át. Ilyesmire gondolok:
A részleteknek azonban neked kell utánanézni, mert én két éve nem foglalkozom már PIC24 assemblyvel (előtte is csak a honlap elkészítése okán nézegettem bele).
Elkezdtem nézegetni a 32 bites processzorokat és látom, hogy szinte minden oldalon van Vdd és Vss láb. Több projektet is véghez vittem már picekkel, de a kérdés csak most vetődött fel bennem: A 16F877es processzoron mindkét oldalon be kell vezetni a földet és a tápfeszt, vagy azok közösitve vannak processzoron belül? Én eddig mindig átvittem mindkét oldalra, de néhányszor már probléma volt, hogy a proci alatt nem tudok vezetékezni, hiszen ott 5 szál is elférhet az én nyák gyártási technológiámmal is.
Akárhány VDD, VSS, AVDD, AVSS kivezetés van, mindet be kell kötni és a tápkivezetéseket meg kell szűrni, azért vannak!
Ez a kérdés már több tucatszor fel lett téve, és mindig ugyanaz a válasz(kérdés) rá. Szerinted nem használták volna fel a gyártók más port kivezetésre, ha nem kéne bekötni!? Sőt, még 100nF-os kondit is kell mindkettőre rakni!
Mind a két oldalon kell 1-1db 100nF-os kondi?
Idézet: „Mind a két oldalon kell 1-1db 100nF-os kondi?” Ezt remélem csak azért tetted fel, mert még nem olvastad az előző két hozzászólást.
Értem, köszönöm! Különben csak arra gondoltam a minden oldalon való kivezetésnél, hogy esetlegesen az áramkör tervezésénél jöhet jól, ha több helyről is kaphatja a tápot, de ezek szerint tényleg mindenhová kell....
SX28-ról tud valaki valamit? Ebben elvileg benne van a Basic értelmező. Ez igaz? Ha igen akkor szeretném tudni, hogyan kell programozni, (milyen programmal) letölteni, mi kell a letöltéshez, stb. Hasonlóan a pickhez, ami ott előfordulhat. Köszi
Ezt a Parallax nevu ceg csinalja, es annyi igaz ebbol, hog a BASIC Stamp nevu termekukben van ilyen Basic Interpreter amirol beszelsz.
Noha az SX microcontroller nagyon hasonlit architekturajaban a PIC-ekre, megsem javasolnam annak hasznalatat (mivel nincs mogotte akkora ceg es annyi dokumentacio, mint a PIC-ekhez). Ami miatt esetleg megfontolando, hogy akar 4x akkora sebessegre is kepes -- cserebe nincs annyi hardver modul benne igy mindet szoftveresen kell megoldani.
Sziasztok,én most kezdek(kezdenék) bele a programozásba és kiakartam próbálni a programozót.(Topi által tervezett JDM programozó[nulláról a robotokig nevű cikkjéből] IC-prog nevű programmal PIC12F629-es IC-vel)
Ha nem volt benne a gépbe a programozó és közben kiolvastam az adatokat akkor csupa 0át kaptam,de ha benne volt akkor pedig csupa 3FFF-et és villogott a LED, tehát gondoltam működik a programozó,majd ezek után letöltöttem egy FBI villogónak a hex fájlját vicsys honlapjáról,de amikor megpróbáltam beégetni akkor kaptam egy hibaüzenetet(1.kép) és amikor csak simán ellenőriztem akkor is ezt kaptam(az elektronikus dobókockánál is ezt csinálta),tehát azt szeretném tőletek megkérdezni,hogy mit ronthattam el,mit nem állítottam be és még azt,hogy amikor átváltok arról az A betűről H-ra(gondolom ez valamilyen nézet 2.kép)akkor ott 16F84-nek az adatai vannak és ez miért van?
Hozzám úgy került néhány darab, hogy tartalmazza az interpretert. Mivel 50 MHz frekivel is tud működni, tudnám használni néhány feladatra. Pl Szines lcd vezérlésre amit szintén kaptam. Most dobjam ki? Nincs ehez fejlesztő mert a Prallax lapján nemtaláltam.
|
Bejelentkezés
Hirdetés |