Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   322 / 1210
(#) icserny válasza silent15 hozzászólására (») Okt 27, 2012 /
 
tudnátok ajánlani egy PIC18f szériából, egy olyat, aminek 1 VDD 1 VSS és tud USB-t is.
Az "1 VDD" a kivezetés darabszámát jelenti? Akkor pl. PIC18F14K50
(#) Kovabe válasza icserny hozzászólására (») Okt 27, 2012 /
 
Köszönöm agyorssegitséget. Igazábol azért szeretnék irni saját progit hogy másne tudjon belepiszkálni csak amit én engedek.
(#) silent15 hozzászólása Okt 27, 2012 /
 
Sziasztok, tudnátok ajánlani egy PIC18f szériából, egy olyat, aminek 1 VDD 1 VSS és tud USB-t is.

Köszi!!
(#) silent15 válasza icserny hozzászólására (») Okt 27, 2012 /
 
Szia, igen ez jól néz ki, a hozzászólásomat, meg nemtudom miért küldte el mégegyszer , de mégegyszer kösz!
(#) vicsys válasza icserny hozzászólására (») Okt 27, 2012 /
 
Szerintem egy kezelő felületre gondolt, ahol változókat/adatokat kérdezhet le és módosíthat, futás közben. Azt hiszem, hogy Visual Studio-val lehet ilyesmit készíteni.
(#) hadnagyakos válasza Kovabe hozzászólására (») Okt 27, 2012 /
 
Adatfeldolgozó programokat lehet összehozni a Lab View nevű fejlesztőkörnyezettel grafikus kezelőfelületen. Természetesen az ismereteket a grafikus felület nem helyettesíti.
Bővebben: Link
A hozzászólás módosítva: Okt 27, 2012
(#) Marko Ramiusz válasza vilmosd hozzászólására (») Okt 27, 2012 /
 
Szia, vilmosd! Igazán a c-t szeretném megtanulni, de assembly-ből is kell tanulni. Köszönöm. Üdv.: Yoe
(#) icserny válasza vicsys hozzászólására (») Okt 27, 2012 /
 
Idézet:
„Szerintem egy kezelő felületre gondolt, ahol változókat/adatokat kérdezhet le és módosíthat”
Az nagyon, amikor találgatni kell, hogy mit is akart a kérdező!

Ha az eredeti kérdésben szerpelő programok helyett tényleg változókat akar matatni, akkor érdemes szétnézni a Microchip alkalmazói könyvtárában, abban vannak egyszerű Visual Studio mintapéldák az USB szekcióban. Viszonylag egyszerű megoldást nyújt a Processing is, azt sem haszontalan dolog megnézni.
(#) vilmosd válasza Marko Ramiusz hozzászólására (») Okt 28, 2012 /
 
De azert talalsz tan azt is benne, vagy nem?
(#) silent15 hozzászólása Okt 28, 2012 /
 
Sziasztok, tud valaki bármely könyvet ami c nyelven tanítja a pic programozást?
A PIC Mikrovezérlők alkalmazástechnikája -t már elolvastam , de még szeretnék tanulni , olyan kéne , ami alapoktól magyaráz, és ha angol az sem baj.

Köszi!
(#) icserny válasza silent15 hozzászólására (») Okt 28, 2012 /
 
Melyik PIC és melyik C? Nagyon nem mindegy...
A hozzászólás módosítva: Okt 28, 2012
(#) silent15 válasza icserny hozzászólására (») Okt 28, 2012 /
 
Szia, bocsi igen ezt kihagyatam;
18F és C vagy C++ az mindegy
(#) icserny válasza silent15 hozzászólására (») Okt 28, 2012 /
 
http://www.pic18f.com/

http://esca.atomki.hu/PIC18/ (PICCOLO projekt)

1. Robert B. Reese: Microprocessors: From Assembly To C with the PIC18FXX2, Delmar Learning, 2006, ISBN 13: 9781584503781, ISBN 10: 1584503785

2. Han-Way Huang: PIC Microcontroller: An Introduction to Software & Hardvare Interfacing, Thomson/Delmar Learning, 2005, ISBN 10: 1-4018-3967
(#) Balázs 1.3 JTD hozzászólása Okt 28, 2012 /
 
Halihó!

MPLAB-ban a debug és a release mód közötti váltásnál mi változik?
(#) El_Pinyo válasza Balázs 1.3 JTD hozzászólására (») Okt 28, 2012 / 1
 
Debug módban történő fordítás esetén a hibavadászathoz szükséges dolgok is befordulnak a .hex-be, Release esetén pedig nem. Amennyiben Debug módban történt meg a fordítás és a kontroller így lett felprogramozva, akkor debugger nélkül nem fog elindulni a kontroller programja, tehát a végleges kódot Release-ben kell fordítani.
(#) mrobi válasza silent15 hozzászólására (») Okt 28, 2012 /
 
Szia! Nézd meg esetleg eszt: Bővebben: Link
(#) vilmosd válasza silent15 hozzászólására (») Okt 28, 2012 /
 
Egy par hozzaszolassal visszabb. Mintapeldakkal, magyarazatokkal, ASM es C.
(#) glaci hozzászólása Okt 29, 2012 /
 
Segítséget kérnék egy mikropascal kód értelmezéséhez!
A mintaprogram analóg bemenetről olvas be analóg jelet, majd kiírja az LCD-re.
program ADC_on_Lcd;

var ch : byte;
adc_rd : word;
text : string[16];
tlong : longint;

begin
INTCON := 0; // disable all interrupts
ANSEL := $04; // configure AN2 pin as analog input
TRISA := $04;
ANSELH := 0; // configure other AN pins as digital I/O
Lcd_Config(PORTB,3,2,1,0,PORTB,4,7,5); // Lcd_Init_EP5, see Autocomplete
LCD_Cmd(LCD_CURSOR_OFF); // send command to LCD (cursor off)
LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD)

text := 'mikroElektronika'; // assign text to string
LCD_Out(1,1,text); // print string a on LCD, 1st row, 1st column
text := 'LCD example'; // assign text to string
LCD_Out(2,1,text); // print string a on LCD, 2nd row, 1st column

ADCON1 := $82; // configure VDD as Vref, and analog channels
TRISA := $FF; // designate PORTA as input
Delay_ms(2000);
text := 'voltage:'; // assign text to string
while TRUE do
begin
adc_rd := ADC_read(2); // get ADC value from 2nd channel
LCD_Out(2,1,text); // print string a on LCD, 2nd row, 1st column

tlong := adc_rd * 5000; // covert adc reading to milivolts
tlong := tlong / 1023; // 0..1023 -> 0-5000mV

ch := tlong / 1000; // extract volts digit
LCD_Chr(2,9,48+ch); // write ASCII digit at 2nd row, 9th column
LCD_Chr_CP('.');

ch := (tlong / 100) mod 10; // extract 0.1 volts digit
LCD_Chr_CP(48+ch); // write ASCII digit at cursor point

ch := (tlong / 10) mod 10; // extract 0.01 volts digit
LCD_Chr_CP(48+ch); // write ASCII digit at cursor point

ch := tlong mod 10; // extract 0.001 volts digit
LCD_Chr_CP(48+ch); // write ASCII digit at cursor point
LCD_Chr_CP('V');

Delay_ms(1);
end;
end.//~!


nem értem hogy az ábrázoláshoz miért szoroz 5000-rel és miért oszt 1023-mal

köszi a segítséget
(#) icserny válasza glaci hozzászólására (») Okt 29, 2012 /
 
Idézet:
„tlong := adc_rd * 5000; // covert adc reading to milivolts
tlong := tlong / 1023; // 0..1023 -> 0-5000mV
nem értem hogy az ábrázoláshoz miért szoroz 5000-rel és miért oszt 1023-mal”

Ha az 5 V-os tápfeszültség az ADC referenciája, akkor a 10 bites ADC 5 V-os bemenő feszültségre 1023-at ad eredményül (azaz 2^10 - 1). Ennél kisebb bemenő feszültség esetén arányosan kisebb adc_rd számot kapunk. Aránypárral:

Vin : adc_rd = 5.0 : 1023 ===> Vin = adc_rc * 5.0 / 1023

Ha el akarjuk kerülni a törszámok használatát, akkor célszerű a feszültséget mV-ban kifejezni. Akkor az 5.0 helyébe 5000-et kell írni.

Vin [mV] = adc_rd * 5000 / 1023, ezt számolja ki a program is.
(#) compaqamplifier hozzászólása Okt 29, 2012 /
 
Pic-es wav lejátsóhoz szeretnék floppy lejátszóról betölteni hanganyagot, meg lehet-e csinálni és ha igen hogyan? http://elasticsheep.com/2010/06/teensy2-usb-wav-player-%E2%80%93-part-2/
A hozzászólás módosítva: Okt 29, 2012
(#) glaci válasza icserny hozzászólására (») Okt 29, 2012 /
 
Nagyon köszönöm, most már értem hurrá!
(#) vilmosd válasza compaqamplifier hozzászólására (») Okt 29, 2012 /
 
ATMEGA32U4 a celeszkoz nem PIC. De szerintem az eredetiben szereplo SD kartyaara at lehetne tolteni floppyrol a hanganyagot, es utana onnan lejatszani.
(#) pjg válasza compaqamplifier hozzászólására (») Okt 29, 2012 /
 
Wav-ban a floppyra csak pár másodperc fér.
(#) Sanyi806 hozzászólása Okt 29, 2012 /
 
Sziasztok!

Egy olyan problémám lenne, egy PIC18F4620 -al, hogy az ADC, valamiért hülyeségeket olvas be a portról, vagy egyszerűen még ha nincs rajta semmi, akkor is VDD-n van, próbáltam 1M-val lehúzni testre, de úgy sem megy. CCS-ben programozok, itt az ADC rész:
  1. #DEVICE ADC=10  // 10bites
  2. #use delay(clock = 4000000, RESTART_WDT)   // 4MHZ quartz
  3.  
  4. SET_TRIS_A(0b00000000); // mind bemenet
  5.  
  6. Setup_ADC_Ports(AN0 | VSS_VDD); // csak AN0-t (RA0) használom REF fesz: VDD és VSS
  7. Setup_ADC(ADC_CLOCK_DIV_8);
  8. //   Setup_ADC(ADC_CLOCK_INTERNAL);
  9.  
  10. Setup_Comparator(NC_NC_NC_NC);
  11. Enable_Interrupts(GLOBAL);
  12.  
  13. // bla bla
  14.  
  15.  
  16. Unsigned Int16 ADC_Val;
  17.  
  18. Set_ADC_Channel(0);
  19. Restart_WDT();
  20. //     Delay_Us(20);         // ??? elég ennyi
  21. Delay_Ms(500);
  22. ADC_Val = Read_ADC();
  23. Restart_WDT();
  24. // bla bla
  25. Printf(LCD_PUTC, "\f\nADCVal: %Lu", ADC_Val); Delay_ms(1000);



Továbbá érdekelne, hogy létezik az, hogy a PIC ADC "olvasásakor" 20mA-t vesz fel az olvasott ADC porton? -mert a doksija szerint, ha jól értelmeztem, akkor annyi; vagy nagyon félreértelmeztem valamit?

Előre is köszönöm mindenki szíves segítségét!
(#) compaqamplifier válasza pjg hozzászólására (») Okt 29, 2012 /
 
0.4 sec hosszu fájlok lennének, az egész állomány ráférne egy floppyra
(#) compaqamplifier válasza vilmosd hozzászólására (») Okt 29, 2012 /
 
Sd kártya nem lenne akkora parasztvakítás, meg van is itthon pár darab...
(#) matheattila válasza Sanyi806 hozzászólására (») Okt 30, 2012 / 1
 
Üdv,
Nem tudom a CCS hogyan működik, mert nem ismerem, de álltalában a TRIS regiszterben a 0 az kimenet az 1 a bemenet, ha CCS-ben is így van akkor kimenetre állítottad az A portot (azaz az ADC bemenetét). Továbbá fogalmam sincs hogyan működnek az általad meghívott függvények de a megfelelő beállításhoz három regiszter értékeit kell megfelelően beállítani:
például:
TRISA = 0b11111111; // az A port bemenet
ADCON0 = 0b00000001; // AN0 kiválasztva, ADC bekapcsolva
ADCON2 = 0b00011100; // balra rendezes, 6TAD, Fosc/4
majd ezek után amikor kedved tartja csak beolvasod a Read_ADC() függvénnyel.
gondolom ezeket végezné el a Setup_ADC függvény.
Lehet, hogy az AD konverzió jó, csak a kiiratásnál van valami gond, szerintem nézz utána egy kicsit a függvényeknek.
Nekem anno ezekkel a beállításokkal működött, igaz én mikroC-ben írtam.
(#) efiscp válasza Sanyi806 hozzászólására (») Okt 30, 2012 /
 
Szia!

Matheattila-nak igaza van, a 0 érték a TRIS-ben a kimenetet jelenti (könnyű megjegyezni: 0->O (output), 1->I->Input)
A CCS-ben ha nem írtad be a #use fast_io-t, akkor magától elvégzi a port irányváltásait, tehát ha az adc-t konfigurálod egy lábra, akkor a hozzá tartozó TRIS bitet beállítja inputra. Ebből kifolyólag a SET_TRIS_x() függvény teljesen felesleges.
(#) Sanyi806 válasza matheattila hozzászólására (») Okt 30, 2012 /
 
Szia!

Igen, jogos! a nagy kapkodásban tényleg outputra konfigoltam a portot.
Közben most olvasom Efiscp válaszát is, sajna nincs #use_fast-io, de
kipróbálom átállítva PORT_A-t, és kap egy ADC_TAD_MUL_6 -ot, hátha jó lesz.
Viszont most a reggeli teszt során azt vettem észre, hogy magától újraindul a PIC.
A PIC tranzisztorokon keresztül 12V-os reléket hajt, amik pedig nagy KW-os mágneskapcsolókat.
12V-os reléknél védődióda van, tranzisztorok bázisában led, táp trafós, stabilizált, 100nF megvan, MCLR 10K VDD és 100nF hidegíti, BROWNOUT tiltva #fuses NOBROWNOUT.
Az újraindulás akkor következik be, mikor a mágneskapcsolók elengednek. Nem tudom mi lehet a gond, mert a 12V táp külön trafóról él, épp azért, hogy az ilyeneket elkerüljem, de csak nem sikerült. Van esetleg valakinek valami tippje?

Köszönöm szépen az eddigi és a későbbi segítségeket is! Sanyi
(#) Sanyi806 válasza Sanyi806 hozzászólására (») Okt 30, 2012 /
 
Sziasztok!

Az ADC probléma megoldódott! Megkapta, hogy input legyen, kapott mellé egy ADC_TAD_MUL_6 -ot, és nagyon jól szuperál. Akkor már csak az újraindulás probléma lesz, de azt nem tudom mi okozhatja, bár most már csak néha csinálja kb 5-ből 2; eddig 5-ből 6-szor resetelt. Az viszont furcsa a számomra, hogy egy ilyen reset után a pic NORMAL POWER UP -al tér vissza. Semmi egyéb, hibát nem ad, pedig figyelem a restart_cause visszatérését.
Nem tudom mi lehet a gond, hardware -s hiba lenne?!

Mégegyszer köszönöm az eddigi és jövőbeli segítségeket!
Következő: »»   322 / 1210
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