Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   894 / 1319
(#) Hp41C válasza szabics hozzászólására (») Jan 24, 2011 /
 
Szia!

Ott van az is, csak egy másik lapon...
(#) trudnai válasza szabics hozzászólására (») Jan 24, 2011 /
 
Nem mondtam, hogy dobd ki! Csupan annyit, hogy nem javaslom... Ettol fuggetlenul miert ne jatszadozhatnal vele vagy hasznalnad valami ertlemes dologra is.

50MHz jo dolog, meg jobb, hogy nincs benne a 4-es osztas mint a PIC-ben, tehat elmeletileg 50MIPS-et tud ekkora orajelnel -- azonban ahogy mondtam nincs benne HW modul egy csomo mindenre igy mindent a CPU izzad ki magabol, tehat az orajel tobblet el is megy szepen ezekre a feladatokra.

A masik, hogy a BASIC interpreter sebessege nem fogja megkozeliteni a C es foleg nem az Assembly futasi sebesseget. Tehat akkor lesz egy 50MHz-es ketyered ami egy PIC 4MHz-nek fog megfelelni kb.

De nem akarom a kedved szegni, mert ettol fuggetlenul robotikara pl jol lehet hasznalni ilyeneket, meg arra, hogy kedvet kapj a mikrokontrollerekkel torteno butykolesekhez.
(#) szabics válasza Hp41C hozzászólására (») Jan 24, 2011 /
 
Köszi Na mostmár csak abban kell segítség, hogyan mivel tudom letölteni a programot.
(#) cNobody válasza szabics hozzászólására (») Jan 24, 2011 /
 
Esetleg rákattintasz a Download oszlopban lévő mappa ikonra?
(#) Hp41C válasza szabics hozzászólására (») Jan 24, 2011 /
 
Szia!

SX-key a ChipCad -tól...
(#) Hp41C válasza davidovics hozzászólására (») Jan 24, 2011 /
 
Szia!

A hex -ben, amit belinkeltél a MCLR le van tiltva, belső oszcillátoros a konfiguráció, valószínű, hogy a PGC és/vagy a PGD kimenet. A pic a Vdd bekapcsolásakor azonnal indul, kimenetnek állítja be a programozáshoz használt vonalakat. Ekkor már csak a "Vpp first programming entry" metódus segít...
(#) szabics válasza trudnai hozzászólására (») Jan 24, 2011 /
 
Remélem nem ennyire nehéz a "felfogása" az értelmezőnek. Csak gyorsabb mint egy 4 MHz-s Pic.
(#) trudnai válasza szabics hozzászólására (») Jan 24, 2011 /
 
Le lehet merni mondjuk, ha nagyon erdekel. De amugy az osszes interpreter (beleertve a Java es .NET kornyezetet is) nagysagrendekkel lassabb, mint akarmilyen native kodra forditott program.
(#) szabics válasza Hp41C hozzászólására (») Jan 24, 2011 /
 
Ez a kulcs tartalmaz valami aktív eszközt? Hasonló mint a PIC programozó? Vagyis megkérdezi a program, hogy ott van és valami elelnörzőkódot küld vissza amivel jelzi a jelenlétét? Bocsi ha sokat kérdezek, de itt jobban eltudjátok mondani, mintha csak olvasnám, a Chipcad oldalán. Ott nincs semmi értékelhető infó erröl.
(#) szabics válasza trudnai hozzászólására (») Jan 24, 2011 /
 
Annyira lelassítja, hogy pl ha 25.75 MHZ impulzusokat akarok kiküldeni az egyik lábon akkor nemfogja megcsinálni annak ellenére, hogy dupla sebeséggel megy a proci? Vagy 75 MHz -l?
(#) davidovics válasza Hp41C hozzászólására (») Jan 24, 2011 /
 
De akkor miért ki hibát amikor leellenőriztetem mielőtt beégetném?(égetés végén is kiírja mielőtt végezne)
És a "Vpp first programming entry" hol lehet beállítani?
Bocsi,hogy ennyit kérdezek,de a programozásban még zöldfülű vagyok.
(#) trudnai válasza szabics hozzászólására (») Jan 24, 2011 /
 
Attol fugg hogyan csinalod meg. Ha siman bitbillegteteses modszerrel probalkozol akkor egy ekkore frakinel mar ASM-ben is vakarni kell a fejed -- interpreteres BASIC-kel nem hinnem, hogy meg tudnad csinalni, foleg, hogy csak akkor mukodne ez igy, ha a kivant freki tobbszorosevel jarna az MCU 2*25.75 vagy 3* 4* stb...

Szerintem egy ilyen dologhoz jobban jarnal egy VCO-val amit a PIC vezerel, es itt a hardveres timer es CCP modulokat lehetne felhasznalni meresre/vezerlesre. A PIC az ideje nagy reszeben pedig malmozik...
(#) tekintetes hozzászólása Jan 24, 2011 /
 
Sziasztok!
Segítségre lenne szükségem. Egy lcd-s programot akarok életre kelteni egy pic16f87xx gyakorló panel v2.2-n. Mplab-ot használok, bevittem az új projektbe a beallit.inc, P18F452, és az lcd18.asm-et. Build all, és ezt kaptam:
--
Debug build of project `C:\Documents and Settings\Fekete Attila\Asztal\Projekt1\bzzz.mcp' started.
Language tool versions: MPASMWIN.exe v5.39, mplink.exe v4.38, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Mon Jan 24 18:50:28 2011
--
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Documents and Settings\Fekete Attila\Asztal\Projekt1\bzzz.mcs".
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F452 "LCD1_18.ASM" /l"LCD1_18.lst" /e"LCD1_18.err" /o"LCD1_18.o" /d__DEBUG=1
Warning[230] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\BEALLIT.INC 14 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
Error[113] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\BEALLIT.INC 16 : Symbol not previously defined (space0x200)
Message[313] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\LCD1_18.ASM 64 : CBLOCK constants will start with a value of 0.
Error[113] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\LCD1_18.ASM 80 : Symbol not previously defined (KezdVect)
Error[151] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\LCD1_18.ASM 274 : Operand contains unresolvable labels or is too complex
Halting build on first failure as requested.
--
Debug build of project `C:\Documents and Settings\Fekete Attila\Asztal\Projekt1\bzzz.mcp' failed.
Language tool versions: MPASMWIN.exe v5.39, mplink.exe v4.38, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Mon Jan 24 18:50:29 2011
--
BUILD FAILED

Csatoltam a három file-t iis. Mi lehet a hiba? Annyit tudok, hogy 0x200 után kezdődjön a program, mert ugrik a bootloader.

Ha valaki tud segíteni, köszönöm!!!
(#) tardis válasza tekintetes hozzászólására (») Jan 24, 2011 / 1
 
  1. Warning[230] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\BEALLIT.INC 14 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.

Ez csak figyelmeztetés. Azt jelenti, hogy azáltalad használt __CONFIG kifejezés elavult. Cseréld le az új formátumú CONFIG-ra
  1. Message[313] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\LCD1_18.ASM 64 : CBLOCK constants will start with a value of 0.

Ez tájékoztatás, miszerint a CBLOCK-od 0-s címen fog kezdődni

  1. Error[113] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\BEALLIT.INC 16 : Symbol not previously defined (space0x200)
  2. Error[113] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\LCD1_18.ASM 80 : Symbol not previously defined (KezdVect)

Ez a két hiba ugyanaz. Szerintem nem állítottad be a fordítói direktrívákat. Olvass utána, vagy a Beallít.inc-ben a "#define LdrKey" sor után definiáld ezt a két változót! A space0x200 értéke 0x200, a KezdVect értéke 0 legyen. A szintaktikáját sajna nem tudom, mert én 'c'-s vagyok.
  1. Error[151] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\LCD1_18.ASM 274 : Operand contains unresolvable labels or is too complex
  2. Halting build on first failure as requested.
Ez azt jelenti, hogy nem tudja értelmezni, ami oda van írva a 274-edik sorban. Megoldást sajnos nem tudok rá, de ez valami olyasmi lenne, hogy hova tárolódjon le a memóriában az a két szöveg
(#) szabics válasza trudnai hozzászólására (») Jan 24, 2011 /
 
Nemjó a VCO mert ez az órajele az LCD-nek. Ebből állítja elő a szinkronjeleket. szigorúan ehez a frekihez van kötve.. Szóval a procinak ezt frekit kell előállítani., hogy tudjam kezelni, mert késleltétések vannak. Ami tulajdonképpen párszáz órajel, ebből, van a sor és képjel stb.
(#) trudnai válasza szabics hozzászólására (») Jan 24, 2011 /
 
Most mar kivancsiva tettel mit butykolsz Milyen LCD ez?
(#) icserny válasza tekintetes hozzászólására (») Jan 24, 2011 / 2
 
Idézet:
„Mi lehet a hiba? Annyit tudok, hogy 0x200 után kezdődjön a program, mert ugrik a bootloader.”


A BEALLIT.INC állomány végén az org space0x200 szintaktikailag hibás. Helyette írd ezt:

  1. org 0x200
  2. #define KezdVect 0x0208
; A számértéket illetően
;bizonytalan vagyok, mert lehet,
;hogy ennek is 0x200-nak kell lennie.
A #define sorral definiáljuk az áthelyezett interrupt vektor címét (ezt a szimbólumot hiányolta a fordító).
(#) tekintetes hozzászólása Jan 24, 2011 /
 
Sziasztok!

A demoboarddal eljutottam oda, hogy egy óra programot lefordít, de ezekkel a hibaüzenetekkel:

Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F452 "ORAIC_18.ASM" /l"ORAIC_18.lst" /e"ORAIC_18.err" /o"ORAIC_18.o" /d__DEBUG=1 /rDEC
Warning[216] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\BEALLIT.INC 33 : Radix superseded by command line.
Warning[230] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\BEALLIT.INC 41 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG.
Message[313] C:\DOCUMENTS AND SETTINGS\FEKETE ATTILA\ASZTAL\PROJEKT1\ORAIC_18.ASM 40 : CBLOCK constants will start with a value of 0.
Executing: "C:\Program Files\Microchip\MPASM Suite\mplink.exe" /p18F452 "ORAIC_18.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /m"aa.map" /o"aa.cof"
MPLINK 4.38, Linker

Letöltőbe teszem a panelt, villan is 2-t a led, letöltés, de a lednek ilyenkor is 2 villanással kellene jeleznie a sikeres letöltést. Ehelyett folyamatosan világít a led, ami hibát jelez. Segítsetek! Most kezdem tanulni a dolgot, ha működne, mégiscsak szívesebben bújnám a könyveket. Köszönöm
(#) bubuc17 válasza icserny hozzászólására (») Jan 25, 2011 /
 
Igazad van az égetővel kapcsolatban, csak a problémám vele hogy égetett pic kell az égetőbe. Amit nem tudok égető nélkül égetni Bővebben: Link .
ugyan ez az áramkör csak a panelterv és a foglalat más.
Ott akadtam el vele hogy nem tudom hogy a pic-et hogy rakjam bele a foglalatba.Mármint a pic lábait tudom de az égetőn pl: melyik láb a data, clock vpp. stb..
Csak annyi van hogy D1,D2 ..?
Vagy csak úgy tudom megállapítani hogy a programban egyesével kapcsolom be vonalakat és mérem?
(#) Hp41C válasza bubuc17 hozzászólására (») Jan 25, 2011 /
 
Szia!

- A programozóban cseréld le a 7405 -öt 7406 -ra. A 7405 kimenetén a megengedett feszültség 5.5V, a 7406 kimenetén 30V. A Vpp jel kapcsolása a kritikus, itt 13V -ra megy fel a kimenet.

- A különböző tokozású kontrollereket más-más helyre kell tenni a foglalatban. A MCLR, a Vdd , a Vss, a PGD és a PGC (valamint a PGM - ha az alacsony feszültségű programozás engedélyezett) kell a típus programozási leírásáben szereplő kivezetésekre kapcsolódnia.

- A programozó kiosztása az ICSP-nek nevezett csatlakozó lábszámaival. Figyelem nem a Microchip által használt ICSP csatlakozó bekötést alkalmazza ez a programozó:
1. PGD, 2. PGC, 3. Vpp, 4. nincs bekötve, 5. Vdd, 6. GND.

Az LPT jeleivel:
PGD kifelé a D0, visszafelé az ACK, PGC kifelé a D1, Vdd kapcsolása a D2, A Vpp kapcsolása a D3 illetve a D4.

- A program két jellel is tudja kapcsolni a Vpp -t: A D3 vagy a D4 LPT adatbittel, a kontroller típusának megfelelőt kell aktivizálni. Az ICSP -nek nevezett csatlakozó használatánál a JP jumpert a megfelelő állásba kell állítani.
(#) icserny válasza tekintetes hozzászólására (») Jan 25, 2011 / 1
 
A hibaüzenetek úgy kezdődnek, hogy Error:, s akkor nem is fordul le a program, nem keletkezik HEX állomány sem. Ezek tehát nem hibaüzenetek, hanem figyelmeztetés (warning), illetve üzenet (message).

Az óraprogram lefordításánál a linker program (MPLINK) is futott. De vajon milyen linker állományt használt, s hova tette a programot (bootloader esetében általában módosított linker állományra van szükség, ami nem pakol a bootloader területére semmit). A programot pedig a linkeléshez (relatív módú programfordítás) MÁSKÉPP kel írni, mint a korábban mutatott (abszolút módú) programodnál. Ezt is meg kell tanulni.

Ha most kezdesz, akkor tedd szépen le a panelt (egy darabig ne is vedd a kezedbe!), s kezdj el olvasni, utána olvasgass egy kicsit, azután meg olvass! (A jelek szerint eddig még nem olvastad el az MPLAB, az MPASM és MPlink leírását sem). Ha már készen állsz a programozásra, akkor pedig az MPLAB szimulátorában próbálkozz, s addig ne is vedd elő a panelt, amíg ott nem sikerül működésbe hozni a programot, s a logikai analizátor ablakában nem azt a jelalakot látod, amit vártál. (A bootloadert úgy lehet szimulálni, hogy a memória 0x0000, 0x0008, 0x0018 címeire beraksz egy-egy GOTO 0x0200, GOTO0x00208, 0x02018 utasítást).

Ha a tanácsomat megfogadva elkezded olvasgatni a PICula projektet, akkor az első öt fejezethez nem kell semmilyen hardver, mindent a szimulátorban kell próbálgatni.
(#) treshold válasza icserny hozzászólására (») Jan 25, 2011 /
 
Köszönöm a segítséget.
Működik!
(#) icserny válasza treshold hozzászólására (») Jan 25, 2011 /
 
Örülök neki. Minden jó, ha jó a vége!
Egyébként mi lesz ebből, s miért assembly-vel gyötröd magad?
(#) Hp41C válasza davidovics hozzászólására (») Jan 25, 2011 / 1
 
Szia!

A "Vpp first programming entry" annyit tesz, hogy a Vpp -t kapcsolja előbb és egy kis várakozás után a Vdd-t. Elvileg ez a programozó képes rá. Nem tudom melyik program képes erre, azok közül, amikkel ez a programozó működtethető. A PICKit2 is csak a saját kezelőprogramjában ad lehetőséget, az MpLab -ban nem...
(#) treshold válasza icserny hozzászólására (») Jan 25, 2011 /
 
Lézerblokkolót építek.

A kültéri vevőből rádiós úton (IA4420) küldöm át a bytokat.a beltéribe.
32 bites számlálóval (kért 16 bites sorba kötött számláló) mér két bejövő impulzus közötti időt.
A számláló alapján dönti el, hogy milyen lézerrel lőttek, majd ennek megfelelő kódot küldi át a rádiós IC-vel a beltéribe,
A beltéri ennek alapján a megfelelő hangüzenetet (ISD17240) indítja Pl "FAMA III lézer, kérem lassítson".

A 32 bites számláló a pontos mérés miatt kell, mert a zavaróimpulzust 200-250nS-mal a bejövő jel elé kell ellőnöm. Ezzel 25nS pontosságú felbontást tudok elérni

Azért Assemblerben, mert ezt tanultam meg.

A programozásban nagyon sokat segített az általad leírt anygag., amiért külön köszönet.
(#) Kriss hozzászólása Jan 25, 2011 /
 
Üdv.
Az lenne a kérdésem, hogy egy logaritmikus skálán, melynek a maximuma 1024 a minimuma 0 és a skála 34 értékre van felosztva, hogyan tudom ezeket az értékeket kiszámolni?
(#) watt válasza Kriss hozzászólására (») Jan 25, 2011 /
 
C-ben léteznek ilye nfüggvények, de nem takarékoskodnak a programmemóriával. Esetleg egy C fordítás ASM kódját érdemes lenne megnézni, hogyan csinálják...
(#) mrb válasza Kriss hozzászólására (») Jan 25, 2011 /
 
Ha egyszerűen csak a matematikai része érdekel, és az adatokat egy táblázatba akarod beírni, akkor az eljárás a következő:
A legnagyobb érték 1024, ez a 34. tömbelem
A következő az a 10^(log(1024)*33/34) =835.14477
Az után értelemszerűen 10^(log(1024)*32/34)=681.11
A csúnya a vége lesz az első 3 elem nem éri el a kettőt
(#) Kriss válasza mrb hozzászólására (») Jan 25, 2011 /
 
Kezdetnek megteszi a táblázat is, mert ahogy a képletet elnézem kemény lenne programmal kiszámoltatni.
Köszi a segítséget!
(#) icserny válasza Kriss hozzászólására (») Jan 25, 2011 /
 
Nem tudom, hogy jól érttetem-e, de ha pl. az a kérdés, hogy egy 0-1024 közé eső mért érték (y) esetén a 34 ledet tartalmazó LED soron hányadik (n) LED-et kell kigyújtani, akkor az alábbi összefüggésből lehet kiindulni:

y = 1024 ^(n / 34) azaz ln y = ln 1024 * (n / 34)

Ebből:

n = ln y * 34 / ln 1024

A 34/ln 1024 egy konstans, megközelítő értéke = 4.9051631390224755850237439154064, ezt nyilván nem kell újra és újra kiszámítani.

Az ln y pedig vagy egy sorfejtésen alapuló közelítő formulával, vagy beépített táblázatból vehető. De legegyszerűbb az n = 1..34-hez tartozó y értékekekt táblázatba foglalni, mert akkor csak 34 sora lesz a táblázatnak - csupán a kereseés lesz bonyolultab egy kicsit. De bináris kereséssel érzésem szerint így is gyorsabb lesz, mint bármilyen sorfejtés, ráadásul a keresésénél csak egész számokkal kell dolgozni.
Következő: »»   894 / 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