Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   893 / 1319
(#) netnet.hu hozzászólása Jan 22, 2011 /
 
C18-as és PIC18F97J60-at használok.

A CustomHTTPApp.c-ben így van megadva a jelszó kérés:
  1. if(strcmppgm2ram((char *)cUser,(ROM char *)"admin") == 0
  2.                 && strcmppgm2ram((char *)cPass, (ROM char *)"microchip") == 0)
  3.                 return 0x80;            // We accept this combination

Nekem van egy változóm,
  1. BYTE            Jelszo[16];
aminek az értéke 123456.
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:

  1. strcmppgm2ram((char *)cPass, (ROM char *)AppConfig.Jelszo) == 0)
  2.  
  3. strcmppgm2ram((char *)cPass, AppConfig.Jelszo) == 0)
  4.  
  5. strcmppgm2ram((char *)cPass, Jelszo) == 0)
(#) tekintetes válasza icserny hozzászólására (») Jan 22, 2011 /
 
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!
(#) icserny válasza tekintetes hozzászólására (») Jan 22, 2011 / 1
 
Idézet:
„Nem egy könyvtárban voltak, de betallóztam. Lehetett ez a hiba?”
Igen, erre céloztam.
Ez pl. működő megoldás:
  1. #include <..\include\picula_all.inc>

Ez is működik, ha az MPLAB jól van beállítva:
  1. #include <p18cxxx.inc>


Nézegetheted a honlapomon a PICula projektet is, bár én PIC18F4520-at használok.
(#) tekintetes válasza icserny hozzászólására (») Jan 22, 2011 /
 
A txt-ben ott a hibák leírása. Mi lehet a gond?

ez a baj.txt
    
(#) vilmosd válasza tekintetes hozzászólására (») Jan 22, 2011 / 1
 
(#) potyo válasza netnet.hu hozzászólására (») Jan 23, 2011 / 1
 
Szerintem a strcmppgm2ram helyett strcmp függvényt kellene használnod a harmadik próbálkozásodban.
(#) icserny válasza tekintetes hozzászólására (») Jan 23, 2011 /
 
A processzor leíró állománya legyen legelöl, csak utána jöhet a beallit.inc:

  1. #include "p18cxxx.inc"
  2. #include "BEALLIT.INC"
(#) netnet.hu válasza potyo hozzászólására (») Jan 23, 2011 /
 
Igazad van, ez be is vált!
(#) trudnai válasza netnet.hu hozzászólására (») Jan 23, 2011 /
 
Amugy miert BYTE tombot csinaltal char helyett?
(#) icserny válasza trudnai hozzászólására (») Jan 23, 2011 /
 
A Microchip Application Library-ban BYTE-nak hívják az unsigned char típust. Lásd GenericTypeDefs.h!
(#) icserny válasza icserny hozzászólására (») Jan 23, 2011 /
 
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.
(#) trudnai válasza icserny hozzászólására (») Jan 23, 2011 /
 
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)
(#) icserny válasza trudnai hozzászólására (») Jan 23, 2011 /
 
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:
„az adatokat char -kent szedi be (hisz senki sem fog csak szmaokkal dolgozni, azt tul egyszeru lenne feltorni)”
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.
(#) trudnai válasza icserny hozzászólására (») Jan 23, 2011 /
 
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.
(#) icserny válasza trudnai hozzászólására (») Jan 23, 2011 /
 
Idézet:
„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.”
Így van, célszerű az átvett támogató könyvtár konvenciójához alkalmazkodni.
(#) treshold hozzászólása Jan 24, 2011 /
 
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.
(#) icserny válasza treshold hozzászólására (») Jan 24, 2011 / 1
 
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.
(#) treshold válasza icserny hozzászólására (») Jan 24, 2011 /
 
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?
(#) icserny válasza treshold hozzászólására (») Jan 24, 2011 / 1
 
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:
  1. CP Wb,Ws
  2. BRA LTU


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).
(#) brenato hozzászólása Jan 24, 2011 /
 
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.
(#) icserny válasza brenato hozzászólására (») Jan 24, 2011 /
 
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!
(#) watt válasza brenato hozzászólására (») Jan 24, 2011 /
 
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!
(#) brenato válasza watt hozzászólására (») Jan 24, 2011 /
 
Mind a két oldalon kell 1-1db 100nF-os kondi?
(#) potyo válasza brenato hozzászólására (») Jan 24, 2011 /
 
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.
(#) brenato hozzászólása Jan 24, 2011 /
 
É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....
(#) szabics hozzászólása Jan 24, 2011 /
 
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
(#) Hp41C válasza szabics hozzászólására (») Jan 24, 2011 /
 
Szia!

Parallax termék...
(#) trudnai válasza szabics hozzászólására (») Jan 24, 2011 /
 
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.
(#) davidovics hozzászólása Jan 24, 2011 /
 
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?
(#) szabics válasza trudnai hozzászólására (») Jan 24, 2011 /
 
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.
Következő: »»   893 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem