Fórum témák
» Több friss téma |
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.
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!!
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!
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.
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
Szia, vilmosd! Igazán a c-t szeretném megtanulni, de assembly-ből is kell tanulni. Köszönöm. Üdv.: Yoe
Idézet: Az nagyon, amikor találgatni kell, hogy mit is akart a kérdező! „Szerintem egy kezelő felületre gondolt, ahol változókat/adatokat kérdezhet le és módosíthat” 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.
De azert talalsz tan azt is benne, vagy nem?
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!
Melyik PIC és melyik C? Nagyon nem mindegy...
A hozzászólás módosítva: Okt 28, 2012
Szia, bocsi igen ezt kihagyatam;
18F és C vagy C++ az mindegy
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
Halihó!
MPLAB-ban a debug és a release mód közötti váltásnál mi változik?
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.
Szia! Nézd meg esetleg eszt: Bővebben: Link
Egy par hozzaszolassal visszabb. Mintapeldakkal, magyarazatokkal, ASM es C.
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 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.
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
ATMEGA32U4 a celeszkoz nem PIC. De szerintem az eredetiben szereplo SD kartyaara at lehetne tolteni floppyrol a hanganyagot, es utana onnan lejatszani.
Wav-ban a floppyra csak pár másodperc fér.
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:
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!
0.4 sec hosszu fájlok lennének, az egész állomány ráférne egy floppyra
Sd kártya nem lenne akkora parasztvakítás, meg van is itthon pár darab...
Ü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.
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.
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
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! |
Bejelentkezés
Hirdetés |