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   938 / 1207
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 / 3
 
Igenis, uram!
Josi777! Azt a parancsot kaptuk, hogy irányítsunk Udvari Zsomborhoz! Kérlek vedd fel vele a kapcsolatot privátban és akkor talán megkegyelmez nekünk!
(#) Udvari Zsombor válasza Gabó hozzászólására (») Ápr 29, 2017 / 1
 
Írtam neki, bár kérdés, hogy mikor jár erre legközelebb, hogy megnézze...
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
Azt írtad, hogy beszerzed a belevaló PIC-t, amire a program írva van. Akkor viszont semmi gond ez nem bonyolult, ha összedrótozod úgy is működni kellene.
(#) Udvari Zsombor válasza nagym6 hozzászólására (») Ápr 29, 2017 /
 
Az nem ugyanaz! A részemre felajánlott panelbe nem PIC16F887 való, az általam használt videókban volt az! Ráadásul a program nincs rajta, azt nekem kell kiégetnem! Tehát ami nekem van, az köszönőviszonyban sincs a felajánlott panellel!
(#) Gabó válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
Most már végképp nem értem a szenvedésedet... Elvileg megvetted a 16f887et is. Ott a video alatt a link, ahonnan le lehet tölteni mindent. Ismétlem mindent!
Amiket eddig írtál, mindened megvan! Ezután mi is a bajod??
(#) attika válasza Gabó hozzászólására (») Ápr 29, 2017 /
 
Az a baja, hogy még senki nem ajánlotta fel azt neki, hogy elmegy hozzá személyesen és megfogja a kicsi kezét és fél kézzel össze rakja neki.
Mondjuk akkor meg az lesz a gond, hogy nem saját projekt lesz.
Nem akarlak elkeseríteni Zsombor, de ez már sehogy se lesz saját mert mindent mástól vársz és mindegy mit írnak/mondanak mert lepereg rólad, az egyik füleden be a másikon ki.
(#) bazsamasza hozzászólása Ápr 29, 2017 /
 
Sziasztok.
Olyan kérdésem lenne felétek, hogy hogyan tudok lcdre kiíratni ékezetes betűt? A kontroller 18f25k80. De jó lenne ha ezt nem csak erre a kontrollerre tudnám használni. Pickit3-at és ccs c-t használok. A verziószámot nem tudom fejből, majd otthon megnézem.
Előre is köszönöm.
Üdv.: Balázs
(#) Gabó válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
Ha segít, itt írnak róla. Lehet profibban is meg lehet oldani, de passz. Bővebben: Link
(#) bazsamasza válasza Gabó hozzászólására (») Ápr 29, 2017 /
 
Köszi, de ezt már próbáltam, de nem működött. Lehet valamit én rontottam el, de nem tudom. Ha hazaérek elküldjem a programot neked?
(#) bazsamasza válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
Annyit még kihagytam, hogy 4bites üzemmódban kezelem az lcd-t. Lehet az a baj? Mert abban amit linkeltél 8bites üzemmódban kezelik.
A hozzászólás módosítva: Ápr 29, 2017
(#) Gabó válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
A PICek lelki világában nem vagyok otthon, csak a neten néztem, hátha segít megoldani a gondot. Lehet a vezérlésed is okozhatja, ha tudod egy próbát megér a kiszűrése.
(#) Elektro.on válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
Szia!
Én MikroPascalt használok, de a lényeg ugyan az. A fentebb linkelt módon az LCD memóriájába be kell tölteni az egyedi karakter "képét".
És mikor ki akarod iratni nem pl."é" betűt iratsz ki, hanem az azt tartalmazó memória címre hivatkozol.
Itt a korábbi Pascalos hozzászólásom. Hátha segít valamit.
Bővebben: Link
A hozzászólás módosítva: Ápr 29, 2017
(#) nagym6 válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
Mindegy, hogy 4 vagy 8 bites módban megy, ugyanúgy lehet 8 karaktert utólag beletölteni.
(#) bazsamasza válasza nagym6 hozzászólására (») Ápr 29, 2017 /
 
Erre nekem tudsz egy példát küldeni?
Köszönöm előre is.
(#) lastewer hozzászólása Ápr 29, 2017 /
 
Sziasztok!

Találtam egy kód részletet , valami hasonló kellene nekem is , de ez nem működik. Egy http kérést szeretnék csinálni egy weboldalhoz. (pl. http://oldalam.hu/adat.php) ezt az oldalt szeretném meghívni pic--el mikroC-ben , tulajdonképpen mint linuxon a wget funkció.

  1. // ethernet interface mac address, must be unique on the LAN
  2. static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
  3.  
  4. byte Ethernet::buffer[700];
  5. static uint32_t timer;
  6.  
  7. const char website[] PROGMEM = "www.google.com";
  8.  
  9. // called when the client request is complete
  10. static void my_callback (byte status, word off, word len) {
  11.   Serial.println(">>>");
  12.   Ethernet::buffer[off+300] = 0;
  13.   Serial.print((const char*) Ethernet::buffer + off);
  14.   Serial.println("...");
  15. }
  16.  
  17. void setup () {
  18.   Serial.begin(57600);
  19.   Serial.println(F("\n[webClient]"));
  20.  
  21.   if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
  22.     Serial.println(F("Failed to access Ethernet controller"));
  23.   if (!ether.dhcpSetup())
  24.     Serial.println(F("DHCP failed"));
  25.  
  26.   ether.printIp("IP:  ", ether.myip);
  27.   ether.printIp("GW:  ", ether.gwip);
  28.   ether.printIp("DNS: ", ether.dnsip);
  29.  
  30. #if 1
  31.   // use DNS to resolve the website's IP address
  32.   if (!ether.dnsLookup(website))
  33.     Serial.println("DNS failed");
  34. #elif 2
  35.   // if website is a string containing an IP address instead of a domain name,
  36.   // then use it directly. Note: the string can not be in PROGMEM.
  37.   char websiteIP[] = "192.168.1.1";
  38.   ether.parseIp(ether.hisip, websiteIP);
  39. #else
  40.   // or provide a numeric IP address instead of a string
  41.   byte hisip[] = { 192,168,1,1 };
  42.   ether.copyIp(ether.hisip, hisip);
  43. #endif
  44.  
  45.   ether.printIp("SRV: ", ether.hisip);
  46. }
  47.  
  48. void loop () {
  49.   ether.packetLoop(ether.packetReceive());
  50.  
  51.   if (millis() > timer) {
  52.     timer = millis() + 5000;
  53.     Serial.println();
  54.     Serial.print("<<< REQ ");
  55.     ether.browseUrl(PSTR("/foo/"), "bar", website, my_callback);
  56.   }
  57. }


Tud valaki segíteni benne? Ez kellene hozzá szerintem.
A hozzászólás módosítva: Ápr 29, 2017
(#) Udvari Zsombor válasza Gabó hozzászólására (») Ápr 29, 2017 /
 
Panelem az nincs hozzá, legfeljebb próbapanelon tudom összerakni. A kontrollerre nekem kell kiégetnem a kódot, ráadásul drótlábú az LCD, mert elfelejtettem tüskesort rendelni... Azért privátban megkérdezem Josi777-et a paneljáról, hátha...
Viszont ez a nyákterv jó lehet? (...)
(#) Gabó válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
Elsőnek tedd össze a próbapanelen. Ha ott megy, csinálhatsz nyákot. De ez a rajz nem jó. Sok részlet hiányzik.
(#) nagym6 válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
4 bites mód. Itt a karak1 -ben ékezetes karakterek adatai, és valami más is, nem emlékszem.
Ebből kielemezhető a lényeg, de másik programnyelv, és biztosan más Pic lábak vannak lcd-hez használva. Az "LCD adat beírás" lehet egyszerűbben is, nem kell bitenként.

  1. const karak1 as byte[64] = (0,14,21,31,21,14,0,0, 0,0,15,17,15,1,14,0,
  2.      2,4,14,17,17,17,14,0, 5,10,14,17,17,17,14,0, 2,4,17,17,17,19,13,0,
  3.      2,4,14,1,15,17,15,0, 2,4,14,17,31,16,14,0, 0,14,31,31,27,31,31,14)
  4.  
  5. '------------- Utasítás pozíció beírása ---------------
  6. sub procedure lcduta
  7.    late.0=0      ' RS utasítás
  8.     lcdad=lcdut
  9.     lcdir             ' utasítás beírása
  10.    late.0=1      ' RS adat beírás
  11.     delay_us (50)
  12. end sub
  13. '--------------------------------------------------------------
  14.  
  15. '-------------- LCD adat beírás ---------------------------------------------------
  16. sub procedure lcdir
  17.     lata.2=lcdad.4  'felső 4 bit beír porta-ra egyenként biteket
  18.    lata.3=lcdad.5
  19.    lata.4=lcdad.6
  20.    lata.5=lcdad.7
  21.    late.1=1           'EN bekapcsolása, felső 4 bit beírása
  22.     delay_us (50)   'ezalatt adatot beír
  23.    late.1=0           'EN kikapcsolása
  24.     lata.2=lcdad.0  'alsó 4 bit beír porta-re egyenként biteket
  25.    lata.3=lcdad.1
  26.    lata.4=lcdad.2
  27.    lata.5=lcdad.3
  28.    late.1=1           'EN bekapcsolása, alsó 4 bit beírása
  29.     delay_us (50)   'ezalatt adatot beír
  30.    late.1=0           'EN kikapcsolása
  31. end sub
  32. '--------------------------------------------------------------------
  33. main
  34.  
  35.    Lcd_Cmd(_LCD_CLEAR)
  36.  
  37. '--- karakterek be --------
  38.     lcdut=64 lcduta
  39.     for i = 0 to 63 lcdad=karak1[i] lcdir next i kark=0
  40.     delay_ms (10)
(#) Pali79 válasza bazsamasza hozzászólására (») Ápr 29, 2017 /
 
(#) Udvari Zsombor válasza Gabó hozzászólására (») Ápr 29, 2017 /
 
Megpróbáltam hozzárakni a feszültségregulátort is, hogy legyen 9V bemenete is... Jól kötöttem ezt be a felajánlott panel alapján?
A hozzászólás módosítva: Ápr 29, 2017
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
7805 középső lábát is a GND-re kell kötni.
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 29, 2017 /
 
Íj, pardon... Most már jó?
Amúgy "Contrast" egy 20K potméter, "Power" egy kétpólusú kapcsoló és "Backlight" pedig egypólusú kapcsoló.
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
Ha külső kvarcot használsz, mindkét lábat mondjuk 22 pF kondival a GND-re kell kötni.
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 29, 2017 /
 
Valamelyikőtök mondta, hogy működik az anélkül is...
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
Szerintem valamit félreértettél. Külső kvarc nélkül működik, ha van belső oszcillátora a PIC-nek (a 16F887-nek van). Ha külsőről megy akkor kell a kondi.
A hozzászólás módosítva: Ápr 29, 2017
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 29, 2017 /
 
Idézet:
„Most már jó?”
Optimista ember vagy. A kontraszt poti másik -rajzon szabad- vége 5V-ra megy.
A 7805-öt fordítva is be lehet tenni, erre figyelj.
A hozzászólás módosítva: Ápr 29, 2017
(#) sonajkniz válasza Pali79 hozzászólására (») Ápr 29, 2017 /
 
Nem akarlak megbántani Zsombor, de te szerintem az orvoshoz is így mész be:

-Doktor úr! Olyan bizonytalan vagyok. Vagy mégsem?
(#) attika válasza lastewer hozzászólására (») Ápr 29, 2017 /
 
Szerintem fölösleges ezt megkérdezned több topicban is mert ha tudnak akkor ott is fognak neked válaszolni.
(#) icserny válasza bazsamasza hozzászólására (») Ápr 30, 2017 /
 
Idézet:
„Mert abban amit linkeltél 8bites üzemmódban kezelik.”
Az lcd4bit_cgram.c programot nézd (3. lista), az 4-bitesen kezeli az LCD-t!

Egyébként a lényeg az, hogy az LCD-ben van hely 8 db szabadon definiálható karakternek (CGRAM terület), s ebben definiálhatunk 8 db ékezetes betűt. A program elején erre a területre betöltjük a karakterképet tartalmazó 64 bájtot, s a továbbiakban a 0 - 7 közötti ASCII kódokkal hivatkozhatunk ezekre a karakterekre. Én az á, é, í, ó, ú, ü, ű, ő karaktereket definiáltam, ezekből lehet gazdálkodni. Emellett a 0xEF kóddal az ö betűt is meg lehet jeleníteni, ha olyan a karaktergenerátorod.

Ezeknek a karaktereknek az átkódolását valahol meg kell oldani. Én az outStringLCD() függvénybe raktam bele, de lehet, hogy nem ez a legjobb megoldás.

Ebben a cikkemben például az lcd_putc() karakterkiíró függvényben oldottam meg az átkódolást.
A hozzászólás módosítva: Ápr 30, 2017
(#) HuG hozzászólása Ápr 30, 2017 /
 
Sziasztok!

Több dolgot is szeretnék kérdezni:
Adott egy PIC18F67K22

1. Univerzális feszültségű bemenetekre volna szükségem (12/24VDC, 230VAC). Első körben relés megoldásra gondoltam, ahol a paneltől független, kívülről érkező fesz, a panelen tokozatba rakott, aranyozott érintkezővel ellátott reléket kapcsolna, aminek a szekunder oldalát nyomógomb szerűen illesztenék a PIChez. Sajnos ez eléggé drága. Megtehetném-e azt, hogy ilyen modulokat helyezek a panelra. Kimeneti oldalk GND-jét összekötném, a V+ pedig a PIC bemeneteire vezetném, esetleg némi kondi szűréssel?
Jó lenn, ha ez működhetne, mert akkor nem kellene a relémag tekercsfeszültségére odafigyelni.

2. A fent említett PIC rendelkezik feszültség korlátozóval. Ha ezt a PIC-et 5V-ról üzemeltetem, és nem használom a feszültség konverterét, akkor a kimenetein 5V-ot ad ki?
Ezt azért kérdezem, mert lenne a rendszerben GPRS modul, ami 3,3V-kíván a bemeneteire. De a többség 5V-os. Célszerűbb lenne csak a kevesebb számú 3,3V-ost illesztenem.
Természetesen ilyenkor az 1. pontban említett modulból 5vDC-seket használnék.

3. Ugyanezt a modult használnám betápnak, egy 5V-ost és egy 3,3V-ost. Van valakinek ebben tapasztalata?
A hozzászólás módosítva: Ápr 30, 2017
Következő: »»   938 / 1207
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