Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   623 / 1319
(#) trudnai válasza tamibandy hozzászólására (») Dec 16, 2009 /
 
Szia,

Picit konkretabbnak kellene lenni, hogy valaszolni tudjunk.

Eloszor is, pickit2-d van, azzal is lehet debuggolni, tehat nem tiszta, hogy most akkor szimulatorra vagy apickit2-re gondolsz mikor "debugger modra" hivatkozol.

Masodszor, valos kornyezetben szamolni kell azzal, hogy az aramkor hogyan van felepitve, milyen korulmenyek kozott van uzemeltetve (pl tapfesz forras milyen stb). Egyszoval kellene latni a kapcs rajzot is, es nyilvan a teszt programot is ami nem mukodik.

Harmadszor azt sem irtad le mi az amit csinalnia kellene, es mit csinal helyette vagy mit nem csinal?
(#) Hp41C válasza tamibandy hozzászólására (») Dec 16, 2009 /
 
Szia!

A hibakereséshez Debug, az önnálló működéshez Release verziót kell fordítani ill. beégetni.

Szia
(#) tamibandy válasza Hp41C hozzászólására (») Dec 16, 2009 /
 
Szia,

Koszi a gyors valaszod, de valahogy ebbol en most nem tudom hogy mit kellene csinaljak.

Igy nez ki az en kodom:
  1. #include <htc.h>
  2.  
  3. main()
  4. {
  5.         TRISD = 0x00;
  6.         PORTD++;
  7.         if(PORTD == 256)
  8.         {
  9.                 PORTD = 0;
  10.         }
  11. }


Hi-Tech ANSI C Compillert v9.70 hasznalok, ja es be van rakva a header fajlhoz a megfelelo file.

Udv,
Andras
(#) Hp41C válasza tamibandy hozzászólására (») Dec 16, 2009 /
 
Szia!

Az MpLab menüsora alatt lehet beállítani, hogy a kódot javítani, nyomonkövetni (Debug) szeretnénk vagy végleges (Release) verzió készül.

Szia
(#) icserny válasza tamibandy hozzászólására (») Dec 16, 2009 /
 
  1. if(PORTD == 256)

Ha ez 8 bites PIC-en fut, akkor nincs értelme! PORTD értéke sohasem lesz 256, mert nincs annyi bitje! Automatikusan nullára vált...
(#) kikike1415 hozzászólása Dec 16, 2009 /
 
Üdv!
Ha PIC-hez külső órajelforrást szeretnék használni azt pontosan hogyan kell megvalósítani? Odáig rendben van, hogy a kvarcot rákötöm a megfelelő lábakra + a két kondit a föld felé, de programba hogyan lehet megvalósítani? Miket kell átállítani? ja és van valami határ hogy milyen PIC-hez mekkora frekvenciájú kvarcot lehet használni, vagy akármekkora lehet?
Előre is köszi!
(#) watt válasza kikike1415 hozzászólására (») Dec 16, 2009 /
 
Adatlap! Olvasd el a kérdéses PIC ide vonatkozó adatait!
(#) kikike1415 válasza watt hozzászólására (») Dec 16, 2009 /
 
Megnéztem az adatlapot, már csak az a baj, hogy az angoltudásom meglehetősen gyér...
(#) watt válasza kikike1415 hozzászólására (») Dec 16, 2009 /
 
A számok és a mértékegységek, valamint a rajzok "magyarul" vannak! Ha ezt nem érted, akkor előbb tanuld meg a nyelvet(az elektronika nyelvét is). Egyébként csak kínlódás lesz...
(#) tamibandy válasza Hp41C hozzászólására (») Dec 16, 2009 /
 
Szia,

Atvaltottam Release-re ahol mutattad a kepeken, ujra buildoltam mindent. Ezutan exportaltam az adott hexfilet az MPLab-bol, majd a PICKit-el beleirtam a chipbe.

Iras kozben bepipalatlan az ON es a /MCLR.

Iras utan rakapcsolom az ON-t es felgyul minden led. Ha bekapcsolom a /MCLR-t is akkor meg elalszanak.

Amugy az en programom egy szamlalo kellene legyen es a ledek az szerint kellene gyuljanak aludjanak ahogy o elszamol 256-ig nem?

Es megsem ez tortenik.

Udv,
Andras

U.I. icserny kivettem az if-et a progimbol
(#) MPi-c válasza tamibandy hozzászólására (») Dec 16, 2009 /
 
Szia!
Nem az if-fel volt a baj, hanem a 256-os értékkel egy egyszerű ok miatt, de ha nem világos ez az ok, akkor talán az alapokhoz kellen előbb visszatérni...
Idézet:
„az en programom egy szamlalo kellene legyen es a ledek az szerint kellene gyuljanak aludjanak ahogy o elszamol 256-ig nem?”

Hát nem. Az a fontos dolog hiányzik belőle, ami számlálást ismét, és ismét (egy meghatározott ismétlési számig vagy a végtelenségig) végrehajtaná.
(Egyébként, ha csak ez a cél, az if tényleg felesleges bele )
(#) Amarton válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Kellene bele még egy
while(1)
is.
A másik dolog, hogy olyan gyorsan fognak a ledek villogni, hogy nem fogod látni.
Így kelleni fog bele valamilyen delay is.
(#) Hp41C válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Szia!

Mérd meg a kimeneteket oszcilloszkóppal - látni fogod, hogy villognak. Ha nincs kéznél, akkor feszültségmérővel is ledönthető, hogy villog vagy folyamatosan világít. Ha villog a feszöltség a pic lábán kb. a tápfeszültség fele, ha folyamatosan világít, akkor a bekötéstől függően a táp feszültsége vagy a nulla körüli érték (A műszer átlagol).

Szia
(#) tamibandy válasza Amarton hozzászólására (») Dec 17, 2009 /
 
Szia,

Nem tudnal mondani egy peldat hogy Hi-Tech C compilerben hogy van a delay?

Harom napja foglalkozom a PIC-ekkel, eletemben eloszor ezert nehezkes megindulnom rajta. Ezert is akarom meg egyelore csak annyit csinalni hogy a ledek pillogjanak.

Van ez a teszt plaka, amin vannak a ledek. PORTD-n 8 db, ami meg a plakan van: egy potencio meter es egy gomb, meg nem tudom hogy melyik porton.

Es miert van az hogyha en rairom a chipre ezt a programot es ON-t adok neki akkor kigyul az osszes led?

Udv,
Andras
(#) tamibandy válasza Hp41C hozzászólására (») Dec 17, 2009 /
 
Szia,

Meromuszerem csak egy multimeterem van.

Vegulis ennek a kittnek kellene mukodnie, nem itthoni epitesu hanem egy teljes PICkit amit meg lehet vasarolni az uzletbol, ezert gondolom nincs szukseg arra hogy kimerjem.

Egyszeruen nekem most csak annyi a celom hogy csinaljak egy alap programot ami mukodik, hogy lassam hogyan kell beleegetni a chipbe es hogyan kell azt elinditani, a tobbi dolgot majd csak lassan lassan.

Udv,
Andras
(#) tamibandy válasza MPi-c hozzászólására (») Dec 17, 2009 /
 
Szia,

Mármint úgy értettem hogy kivettem az egész if-es részt a programból

Üdv,
András
(#) kissi válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Szia!
Idézet:
„Egyszeruen nekem most csak annyi a celom hogy csinaljak egy alap programot ami mukodik, hogy lassam hogyan kell beleegetni a chipbe es hogyan kell azt elinditani”
-->

Ezt úgy kezd, hogy csak 1 LED-et akarj bekapcsolni a PIC indulásával egyidőben ( ne egyből számlálót akarj készíteni, ha nem vagy tisztában a konfigurációs bitek, a letöltési procedúra és a szoftverkörnyezet utasításaival!), mintha a LED rá lenne kötve a tápra, csak a PIC kapcsolja fel!

Steve
(#) watt válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Idézet:
„Vegulis ennek a kittnek kellene mukodnie, nem itthoni epitesu hanem egy teljes PICkit amit meg lehet vasarolni az uzletbol, ezert gondolom nincs szukseg arra hogy kimerjem.”

Olvasd el újból amit választ kaptál, és próbáld megérteni miért és mit kell kimérni. Annyit segítek, hogy nem a kittedet és nem azért mert gyári vagy nem!

Van kérdésem is: Értesz az elektronikához? Programoztál már bármit ezelőtt?
(#) tamibandy válasza watt hozzászólására (») Dec 17, 2009 /
 
Szia,

Sok közöm nincsen az elektronikához.

Egyetemen, laborokon programoztunk még Atmega8-asokat, AVR Studioban azt hiszem. De azt is pár órán csak. És aminek sok köze nincs a PIC-hez ahogy észrevettem.

Azért kellene megmérnem hogy lássam azt hogy egyszerüen égnek a ledek vagy olyan gyorsan pillognak hogy az emberi szem úgy itéli meg mintha folyamatosan égne. Nem ez lett volna a lényege? Ha igen akkór én egy olyan progit szeretnék irni ami biztosra nem olyan gyorsan villogtatja a ledeket hogy azokat úgy lássuk mintha folyamatosan égnének.

Üdv,
András
(#) watt válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Idézet:
„Sok közöm nincsen az elektronikához.”

Ez elég nagy baj, mert ez színtiszta elektronika.

Idézet:
„Azért kellene megmérnem hogy lássam azt hogy egyszerüen égnek a ledek vagy olyan gyorsan pillognak”

Igen, pontosan.

Idézet:
„én egy olyan progit szeretnék irni ami biztosra nem olyan gyorsan villogtatja a ledeket”

Akkor tegyél be időzítéseket a ki és bekapcsolások közé. A programnyelvhez biztosan van leírás, keresd meg a helyes szintaktikát. Ha nem találod, akkor tegyél for ciklusokat, jó sokat!
(#) tamibandy válasza kissi hozzászólására (») Dec 17, 2009 /
 
Szia,

Na sikerült megoldanom azt hogy amelyik LED-et akarom felgyújtani az égjen

Na most akkor mehetünk tovább

Kellene nekem egy delay függvény, megszeretném csinálni a következő dolgot: villogjanak a LED-ek és olyan gyorsan ahogy a potenció métert csavarom, annak függvényében lasabban vagy gyorsabban.

Üdv,
András
(#) tamibandy válasza watt hozzászólására (») Dec 17, 2009 /
 
Szia,

Oké rajta vagyok most ezen.

Amúgy egy 1000-es for ciklus megfelel 1 másodpercnek?

Üdv,
András
(#) watt válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Nem valószínű! Kicsit lassú lenne a PIC, ha megfelelne... Kicsit próbálj utánanézni a PIC működésének!
(#) kissi válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Ne siess annyira, megvár

Először "csak" próbáld villogtatni, aztán a villogás frekvenciáját változtasd, azután ismerd meg az AD-t, majd kapcsold össze az AD-t a villogós progival, kb. ezek a lépések kellenek!

Ha valamennyit programoztál már, akkor tudnod kell, hogy részeket írunk meg és tesztelünk, abból írjuk meg a progit ( csak a gyakorlás révén éred el azt, hogy egyszerre már nagyobb részeket is meg tudsz írni, de jelen esetben erről még ne beszéljünk...!)!


Az AVR utasításai mások, de programozási szempontból hellyel-közzel azonosnak tekinthető ( be-kimeneteket kell ott is meghatározni, perifériákat lehet SFR regiszterekkel működtetni, byte-os szervezésű, stb. ) és ott is BIBLIA az adatlap!!!

Steve
(#) Attila86 válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Nézd csak, itt egy időzítő szubrutin:
  1. delay1000ms:
  2.      movlw  d'100'
  3.      goto       d3
  4. delay100ms:
  5.      movlw      1
  6.  d3: movwf      delay3    ;4MHz esetén 1usec/utasítás
  7.  d2: movlw      d'100'
  8.      movwf  delay2
  9.  d1: movlw      d'248'    ; belső ciklus hossza (2*konstans +3us)
  10.      movwf  delay1
  11.  d0: decfsz  delay1,f
  12.      goto   d0           ;ahányszor visszaugrik annyiszor 2us -> 512us
  13.      decfsz  delay2,f
  14.      goto       d1      ;cx-2 ször fut le a belső ciklus idő: konstans*(belső+2us)
  15.      decfsz  delay3,f
  16.      goto       d2      
  17.  
  18.      RETURN

Én ezt használom. Az A/D konverzióig még nem jutottam el sajnos.
(#) MPi-c válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Idézet:
„...Hi-Tech C compilerben hogy van a delay?”


Ha már így "neki ugrottál" a Hi-tech C-nek, a telepítési könyvtárában találsz egy "docs" nevű könyvtárat, amiben, pl. erre a kérdésedre is van válasz...
(#) tamibandy válasza watt hozzászólására (») Dec 17, 2009 /
 
Szia,

Hát végülis olyan 20000 for ciklusra saccolnám az egy másodpercet. Elég gyorsnak tünik ez a PIC.

Üdv,
András
(#) icserny válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
El kellene olvasni a fordító dokumantációját!

__delay_ms() és __delay_us() könyvtári függvények...
(#) tamibandy válasza kissi hozzászólására (») Dec 17, 2009 /
 
Szia,

Megvan már a villogtatás Nagy örömömre, látok is valamit mostmár abból amit idáig csak a fejemben tudtam elképzelni.

Megcsináltam a KnightRider autójának is a LED-es beszélgetésének az animációját.

Most arra lennék kiváncsi hogy honnan tudhatom meg, miből hogy a potiméter valyon melyik bemenetre van rákötve?

A PIC-em adatlapja megvan, de maga a plákáé nincsen.

Üdv,
András
(#) tamibandy válasza Attila86 hozzászólására (») Dec 17, 2009 /
 
Szia,

Köszi a program részletet, de nem Assemblerben szeretnék programozni hanem C-ben, kicsit az otthoniasabb nekem.

Üdv,
András
Következő: »»   623 / 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