Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   422 / 1320
(#) csiefjancsi hozzászólása Márc 3, 2009 /
 
Sziasztok!
A minap segítséget kértem Tőletek I2C ügyben amikor is egy TCN75AV hőmérőt szerettem volna Oshonos Basic-ben szóra bírni. Mivel ez lenne az első efféle alkotásom ezért ez nem is sikerült. Illetve szerintem túl nagy fába vágtam a fejszémet amint Ti is mondtátok. Le is tettem eről a szándékról és úgy gondoltam hogy az alapoktól kezdem, elolvastam az összes mindent amit googli kidobott.
Arra gondoltam hogy 2 db 16F690 között kéne I2C-vel
kezdeni mivel nincs hirtelen semmi memoriám itthon.
Nem tudom hogyan álljak neki??!!
Tudom hogy Basic meg minden, meg az angol tudásom sem valami fényes de most még ez van...

Nincsen-e valaki Aki ebben tudna segíteni elindulni????

Félreértés ne essék nem azt szeretném, hogy valaki helyettem dolgozzon!!

Előre is köszönöm a segítséget!
(#) vzsolo válasza kisszee hozzászólására (») Márc 3, 2009 /
 
A "nem árt tudni valaminek az angol megfelelőjét", meg a "teljesen angol szövegből megtanulni egy nyelvet" között szerintem azért nem kis különbség van, legalábbis számomra.
Basicet, meg a php-t is megtanultam anno magyar leírások alapján, mikor szükségem volt rá, és nem éreztem hiányát az - akkor még a mostaninál is csekélyebb szintű - angol tudásomnak.
(#) potyo válasza vzsolo hozzászólására (») Márc 3, 2009 /
 
Azért kicsit más a PHP/Basic és más a kontroller. Itt azért nem csak arról van szó, hogy C-ben tudjunk programozni, itt tudni kell hozzá elektronikából is sokmindent, és az adatlapot is el KELL tudni olvasni, mert abban van leírva a kontroller működése, beállítása, utasításkészlete, stb. Az, hogy valaki tud C-ben programozni, az még nem jelent semmit a kontrollerekhez...

El kell fogadni, hogy angolul legalább olyan szinten tudni kell, hogy az adatlapokat megértsük. Ez nem nagy elvárás, bár kétségtelen, hogy nem vág össze egyetlen angoltanfolyam tananyagával sem.
(#) MPi-c válasza csiefjancsi hozzászólására (») Márc 3, 2009 /
 
Nem volt az a TCN75A túl nagy falat, nyugodtan folytathatod, de előbb magát az I2C -t ismerd meg! Van egy magyar nyelvű leírás itt. Ez egy (AVR-es lap, de ez az I2C szempontjából közömbös.) Ha elolvastad, megértetted, utána előveheted a hőmérő szenzorod adatlapját. (Én elővettem.) Benne van pontosan hogyan kell konfigurálni a szenzort, mit és hogyan kell beállítani, hogyan kell az adatokat kiolvasni. Akkor már világos lesz számodra mit jelent az, hogy master, slave, star/stop condition vagy addres byte és ack.
(#) watt válasza potyo hozzászólására (») Márc 3, 2009 /
 
Idézet:
„Az, hogy valaki tud C-ben programozni, az még nem jelent semmit a kontrollerekhez...”

Ez elég enyhe fogalmazás. Én azt mondom, hogy aki tökéletesen programoz C-ben PC-n, az ettől még teljesen süket lehet a PIC-hez, ha nem ért az elektronikához!
Persze vannak akik belekóstólgatnak, de ők a LED-en túl csak utánépítésekig jutnak el, ami amúgy már egy magasabb fok a csak programozni tudó szakembertől
(#) vzsolo válasza potyo hozzászólására (») Márc 3, 2009 /
 
A kontrollerek működése ITT le van írva magyarul, a specifikus dolgokat, meg ez alapján ki tudom keresni az adatlapokból. Ha már tudom, hogy mi, mire való, mit kell keresnem, akkor elnavigálok egy PIC adatlapban.
Nem akarom túlságosan nagy fába vágni a fejszém, csak pár poti, meg gomb értékét kiküldeni PC-re.
Én hiába fogadom el, ha nem értek ehhez a terminológiához angol nyelven.
Nem mondtam, hogy nagy elvárás az angol tudás, de ha ez nem képzi az angol tananyagok részét, akkor hogyan kellene megértenem egy szakszavakkal, meg kifejezésekkel teletűzdelt szöveget?
Ti hogy tanultátok meg? Mert gyanítom nem én vagyok az egyedüli, aki nem ezzel a tudással a kisujjában született...
(#) csiefjancsi válasza MPi-c hozzászólására (») Márc 3, 2009 /
 
Köszönöm a magyar nyelvű útmutatót, nem is értem hogy ezt még hogy nem láttam. Talán átsiklottam az AVR miatt amit hibásan tettem. Köszönöm.
(#) trudnai válasza vzsolo hozzászólására (») Márc 3, 2009 /
 
Idézet:
„Nem mondtam, hogy nagy elvárás az angol tudás, de ha ez nem képzi az angol tananyagok részét, akkor hogyan kellene megértenem egy szakszavakkal, meg kifejezésekkel teletűzdelt szöveget?
Ti hogy tanultátok meg? Mert gyanítom nem én vagyok az egyedüli, aki nem ezzel a tudással a kisujjában született...”


Azt azert tudnod kell, hogy a magyar forditasok mindig is az eredeti szovegek mogott fognak jarni. Magyarorszag kicsi ahhoz, hogy nagy energiat fektessenek abba hogy az anyagokat azonnal leforditsak. Aki fordit az valoszinu ilyen vagy olyan erdekbol teszi, es ez vagy penz vagy buszkeseg. Ez elobbi akkor nagyjabol csak az erdekli a forditot, hogy meg legyen az anyag, ha ez utobbi akkor nagy valoszinuseggel szabadidejeben teszi.

Vissza terve a kerdesedre, en hogy csinaltam: Anno mikor az Apple II-n tanultam a 6502 assembly-t (sot a Basic-et is) akkor Nemet nyelvu konyvekbol tudtam csak tanulni mivel Mo-n az Apple II cocom listas volt... Marmint ezert nem is volt nagyon, talan 100 db ha lehetett. Konyv magyarul abszolut nem volt es mivel Edesapam 2. anyanyelve Nemet ezert egyertelmu a konyveket is onnan szereztuk be. Nulla Nemet tudassal meg egy szotarral kezdtem neki es ment a dolog - ha akarja az ember semmi sem leheteten. Namost abban az idoben nem volt internet, csak a nyalazos konyvek es szotarak... Ma neked ott van minden, csak begepeled a szot es kiugrik mit is jelent. Ha szakszo akkor mar vannak szakszotarak is, kifejezes gyujtemenyek, lexikonok es midnden egyeb nyalanksag amirol en almodni sem mertem volna tini koromban. Hidd el, hogy rettento konnyu a dolgod!

Es ha meg egy megjegyzest meg tehetek a temaval kapcsolatosan: Ha soha nem kenyszerited magad, hogy az angol szakszavakat megismerd, akkor soha sem fog ez sikerulni - sajnos ez nem jon magatol - ill maga magatol jon
(#) icserny hozzászólása Márc 3, 2009 /
 
Érdekes elírások vannak az MPLAB szimulátorátorához szükséges eszközleíró állományokban. Mivel nemcsak az általam vizsgált vezérlőnél találtam elírást, s mivel a dolog a szimuláción kívül valószínűleg a debug-olást is érintheti, nem haszontalan leírni a dolog tanulságait.

Program: MPLAB 8.15a

Hibajelenség: PIC24HJ128GP502 eszköznél a View/Special Function Registers ablakban az ODCA regiszter rossz címen jelenik meg (0x2C6 helyett 0x26C) így érthetően nem is működik.

Javítás: az MPLAB IDE\Device könyvtárban javítandó a PIC24HJ128GP502.dev állomány,melynek az ODCA-ra vonatkozó sora így nézett ki:
  1. sfr (key=ODCA addr=0x26c size=2 access='u u u u u u u u u u u rw rw rw rw rw')
helyette ez legyen:
  1. sfr (key=ODCA addr=0x2c6 size=2 access='u u u u u u u u u u u rw rw rw rw rw')


Tanulság: az MPLAB IDE\Device könyvtár állományai szövegszerkesztővel egyszerűen javíthatók!
(#) watt válasza icserny hozzászólására (») Márc 3, 2009 /
 
Köszi a hasznos infót!
(#) kisszee hozzászólása Márc 3, 2009 /
 
Én úgy "tanulom" (itt a tanulást nem a szó szoros értelmében kell venni, hanem, mint inkább kellemes kikapcsolódásként), hogy egy felépített ( mondjuk egyre nehezedő témakörök alapján ) rendszer alapján kitűzök magamnak célokat, mindegyik témakörből ( azért nagyon durva komolyra ne gondolj itt, de nem is érdemes egy touchpad + atomreaktor házilag projecttel kezdeni szerintem ); hogy a watt által "kedvelt" "led villogtatás" -nál maradjunk, pl.: én ezt anno nehezítgettem magamnak, mindenféle hülyeséget kitaláltam rá, és próbáltam egyedül megoldani; persze egy alap kiindulási program volt, de anélkül nem lehet ezt elsajátítani, hogy ne nézzél meg többfajta programot/megoldásokat egy adott feladatra. Ugyanez a helyzet szerintem egy nem mikróvezérlős feladat megoldásánál is ( sőt, még az életben is célokat tűz ki az ember magának, nem de ? ). De én amatőr vagyok jelenleg ebben a témában, lehet a nagyon kinevetnek most, de ez az én módszerem.
(#) vzsolo válasza trudnai hozzászólására (») Márc 3, 2009 /
 
Jaj, de félreértetek engem! Nem mondtam, hogy nem nézek utána a dolgoknak, csak nem hiszem el, hogy full angolul nulláról meg tudnám tanulni azt amire szükségem van. Épp ezért határoztam el, hogy megpróbálkozok vele, mert gyakorlatilag nekem csak annyira lenne szükségem ami Gory cikkében megtalálható, tehát ha úgy tetszik összeollóznám a kódot amire szükségem lesz, de hogy ne síkhülyeként álljak neki, ezért akartam ezt a LED villogtatót, hogy ráérezzek a lényegére, csak ugye az előzőekben megismert problémákba ütköztem, amit segítségetekkel sikeresen kiküszöböltem, tehát a többi már csak tőlem függ.
kisszee:Pontosan így szeretném én is, eddig is így tanulgattam, csak kicsit meglepődtem ezen, hogy pl. egy LED vezérléséhez már ki kellene pörgetnem egy full angol 400 oldalas adatlapot. :eek2:
(#) icserny válasza vzsolo hozzászólására (») Márc 3, 2009 /
 
Idézet:
„kicsit meglepődtem ezen, hogy pl. egy LED vezérléséhez már ki kellene pörgetnem egy full angol 400 oldalas adatlapot.”


Ugyan, dehogy kell! Megnézed a lábkiosztást, s azon azt, hogy a kiszemelt porton az I/O funkción kívül milyen eszközök vannak még multiplexelve (analóg komparátor, ADC). Utánanézel, hogy ezeket kell-e tiltani és hogyan. De ehhez nem kell sem a PWM, sem az UART/SPI/I2c, sem a Parallel Master Port leírásának tanulmányozása, sem az EEPROM írása, sem egyéb sallang.
(#) sityu39 hozzászólása Márc 3, 2009 /
 
Sziasztok
Súlyos problémával szembesültem PIC programozás során.
PIC16F877 programozásával foglalkozom keményen már több hónapja és először akadtam olyan problémára, amelynek mindenhol (még a gyári adatlapban is) az ellenkezőjét bizonygatják.

Másik 2K program lap terülertéről szubrutin eljárás meghívásához beállítom a PCLATH regiszter 3. és 4. bitjét, majd GOTO vagy CALL utasítással meghívom a szubrutint. Ez szép és jó és működik.
Viszont a visszatérés sem a RETURN, sem a RETLW utasításokkal nem történik meg. A program a hívott szubrutin 2K-s oldalán marad visszatérés helyett. :help:

Az MPlab-ban a PIC tipusa beállítva. A programozóban a PIC tipusa szintén beállítva. A forráskód saját, és nem másik PIC-re írt. Több 877-esen is próbáltam már. Ha a PCLath regiszterben beállítom a 3. és 4. bitet RETURN előtt, akkor visszalapoz, de másként nem.

Adjatok légyszíves ötleteket. :help:
(#) potyo válasza sityu39 hozzászólására (») Márc 3, 2009 /
 
Tudsz mutatni kódot?
(#) kissi válasza sityu39 hozzászólására (») Márc 3, 2009 /
 
A RETLW-hez nem elég a 3-4 bit, a RETURN-nak működnie kell ( nem újra ugrást használsz utána?!) !

Adatlap: "PCL and PCLATH" rész, nekem működik, biztos valamit elírsz ( szimulátorban is ellenőrizheted!)!

Steve
(#) vzsolo válasza icserny hozzászólására (») Márc 3, 2009 /
 
Hát épp ez az, hogy végig ennyiről volt csak szó, ezért nem is értettem hogy jön ide ilyen szinten az angol tudás.
(#) miklosch hozzászólása Márc 3, 2009 /
 
Sziasztok!

Hogyan tudnám megcsinálni azt, hogy 0-5V közötti feszültséget átalakítsam 0-10V-ra, tehát megduplázzam a feszültséget, hogy egy 0-10V-os rendszert vezérelni tudjak PIC-kel, pl. egy frekvenciaváltót.
(#) potyo válasza miklosch hozzászólására (») Márc 3, 2009 /
 
Műveleti erősítővel
(#) sityu39 válasza kissi hozzászólására (») Márc 3, 2009 /
 
Ellenőrzöm a hívásokat, de a teljesen erre a célra írt egyszerű ellenörző program sem tért vissza az nulladik lapra, ha a másik oldalról vissza akartam térni. Utánnanézek ennek a kis proginak, mert jóval egyszerűbb kibogozni, mint a másik 7kb méretűt.
(#) miklosch válasza potyo hozzászólására (») Márc 3, 2009 /
 
Például egy neminvertálóval, 0-10V-os tápfesszel, kétszeres erősítéssel?
(#) icserny válasza miklosch hozzászólására (») Márc 3, 2009 /
 
Ha pontosan kell a 0 és a 10 V is, akkor inkább +/-15 V-ról.

De miről van szó? Ha analóg vezérlés kell, akkor egy DAC is kell, nemde?
(#) miklosch válasza icserny hozzászólására (») Márc 3, 2009 /
 
Egy 16F877-tel már meg van oldva a 0-5 V DAC, és ezt akarom átalakítani 0-10 V-ra.
(#) potyo válasza miklosch hozzászólására (») Márc 3, 2009 /
 
Tápnak kb. elég lenne egyetlen 15V-os táp is, mert ahogy nézem az LM358 adatlapját, a bemenetén simán jó a 0V, a kimenetét meg 20mV-ra tudja lehúzni. Ha a 20mV elég akkor nem kell szimmetrikus tápegység.
(#) trudnai válasza sityu39 hozzászólására (») Márc 3, 2009 /
 
Idézet:
„Másik 2K program lap terülertéről szubrutin eljárás meghívásához beállítom a PCLATH regiszter 3. és 4. bitjét, majd GOTO vagy CALL utasítással meghívom a szubrutint. Ez szép és jó és működik.
Viszont a visszatérés sem a RETURN, sem a RETLW utasításokkal nem történik meg. A program a hívott szubrutin 2K-s oldalán marad visszatérés helyett.”


Pedig annak mukodnie kell (kis szepseghiba abban ahogy csinaltad: Kozvetlenul ne birizgald a PCLATH-t, ott van a PAHESEL, tessek azt hasznalni, erre van!)

Ha adatlapot megnezed vilagosan le van irva, hogy a stack mind a 13 bitet eltarolja, es RETURN, RETLW es RETFIE eseten a megfelelo helyre ugrik vissza, sot a PCLATH tartalma sem valtozik meg. Ha ez neked nem tortenik meg, akkor ott valami mas problema van, pl kesobb azon a lapon meg hivogatsz mas rutinokat es nem tersz onnan vissza tehat stack overflow-d van, vagy eppen ujra meghivod a rutinud ugyanarrol a laprol es annak a visszatereset koveted. Esetleg ISR-bol nem tersz vissza RETFIE-vel. Mas-ra most igy hirtelen nem tudok gondolni...
(#) icserny válasza sityu39 hozzászólására (») Márc 3, 2009 /
 
Ez így működni látszék a szimulátorban.
Hasonlóan megy org 0x800-zal, csak akkor 0x8-ot kell PCLATH-ba írni.

  1. #include <p16f877.inc>
  2.  
  3.     org 0x0
  4.    goto main
  5.  
  6.    org 0x100
  7. main
  8.    movlw 0x10
  9.    movwf PCLATH
  10.    movlw 0xff
  11.    call putty
  12.    movlw 0x00
  13.    movwf PCLATH
  14.    goto main
  15.  
  16.    org 0x1000
  17. putty
  18.    retlw  0x11
  19. end
(#) MPi-c válasza trudnai hozzászólására (») Márc 3, 2009 /
 
"PAHESEL" -> PAGESEL ( Csak azért, hogy félreértést - értetlenséget - ne okozzon )
(#) kissi válasza trudnai hozzászólására (») Márc 3, 2009 /
 
Ha PAGESEL-t használ akkor az lapot vált ( PCLATH 3-4 bit) és így egy táblázat RETLW utasítása után nem jó helyre ugrik vissza, ott szerintem kell a PCLATH birizgálása!

Steve
(#) trudnai válasza kissi hozzászólására (») Márc 3, 2009 /
 
Idézet:
„Ha PAGESEL-t használ akkor az lapot vált ( PCLATH 3-4 bit) és így egy táblázat RETLW utasítása után nem jó helyre ugrik vissza, ott szerintem kell a PCLATH birizgálása!”


Nem egeszen ertem mire gondolsz most? Hogy egy RETLW tablazat eseten nem jol szamolodik ki a PAGESEL (G-vel ) hasznalata eseten?
(#) kissi válasza trudnai hozzászólására (») Márc 3, 2009 /
 
A RETLW-nél használjuk az ADDWF PCL,F-t és a PCL-t érintő utasításoknál a PCLATH-ból jön a teljes PCH...Ez gondot okozhat.

Steve
Következő: »»   422 / 1320
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