Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Par hozzaszolassal elobb (#439932) icserny valakinek oda irta egy magyar site linkjet, azt olvasgad at. Azonkivul talan a Topi ckket is erdemes itt a HE-n elolvasni, az a cime, hogy "Nullarol a robotokig". Ezekkel egy olyan alapot tudsz felszedni amivel talan el tudsz kezdeni a temaval foglalkozni -- mar ha erdekel egyaltalan. Ha nem akkor a hirdetes rovatban meg mindig fel tudsz adni egy hirdetest, hogy PIC fejlesztot keresel egy egyszeru feladathoz...
Nemrég volt itt téma az egyszerű nyomógomb pergésmentesítése. Nos, én nemrég vettem egy breadboardot, és jelenleg azzal élvezkődök ( ), egy 16F882 van az áramkörömben. Ennek a PIC-nek az RB0/INT lába Shmitt-triggeres (tényleg: Schmitt vagy Schmidt? mert én mindkét írásmóddal látom emlegetni...), így egy RC taggal is lehet kielégítő eredményt elérni. Én úgy használom jelenleg, hogy a nyomógomb a földre zár egy 680ohm-os ellenállással, az RB0/INT lábon pedig van egy 470nF a föld felé. Az RB0/INT lábra a belső felhúzó ellenállás be van kapcsolva.
The Schmitt trigger was invented by US scientist Otto H. Schmitt in 1934 while he was still a graduate student[1] Amúgy én is sokféleképpen láttam már. Idézet: „egy 16F882 van az áramkörömben. Ennek a PIC-nek az RB0/INT lába Shmitt-triggeres (tényleg: Schmitt vagy Schmidt? mert én mindkét írásmóddal látom emlegetni...), így egy RC taggal is lehet kielégítő eredményt elérni. Én úgy használom jelenleg, hogy a nyomógomb a földre zár egy 680ohm-os ellenállással, az RB0/INT lábon pedig van egy 470nF a föld felé. Az RB0/INT lábra a belső felhúzó ellenállás be van kapcsolva.” En ugy tudom Schmitt trigger Amugy ez tenyleg egy jo modszer amit mondasz, ha megnezed a PICdem2-ben is alkalmazzak ezt...
Ez nem teljesen ugyanaz az elrendezés. Lerajzoltam azt, amit én emlegettem. A soros ellenállás a lenyomott állapotbeli, a nem látható, belső felhúzó ellenállás a felengedett állapotbeli áramot, ezzel a jelváltozási sebességet korlátozza a kondenzátoron.
A kondenzátor méretével és további töltést/kisütést korlátozó ellenállásokkal, akár különböző késleltetéseket és gomb tiltásokat lehet elérni. Jelenleg nincs breadboardom, mert ami volt csak kölcsönbe volt, de veszek én is egyet és kipróbálom.
Hello!
A számítógépemen a soros porton megmértem a feszültséget, hogy alkalmas-e hozzá külsőtáp nélküli égető. Csak azt nem értem hogy az 5 láb(GND) és a 3 láb között(TXD) kb 11-12 V van, de a multiméter földjét a 5 lábra (gnd)-re teszem a multiméter piros vezetékét pedig a 3as lábra, akkor a feszültséget mínuszba mutatja, tehát olyan mintha a 3as lenne a GND. Ja, és ha mondjuk egy elem feszültségét mérem akkor jól mutatja(tehát fekete vezeték -on piros +on és normálisan pozitív értékben mutatja a feszültséget). Akkor ez most hogyan van?? Mert az égetőben a dióda nem mindegy hogy van elhelyezve... üdv: mate_x Idézet: „Csak azt nem értem hogy az 5 láb(GND) és a 3 láb között(TXD) kb 11-12 V van, de a multiméter földjét a 5 lábra (gnd)-re teszem a multiméter piros vezetékét pedig a 3as lábra, akkor a feszültséget mínuszba mutatja, tehát olyan mintha a 3as lenne a GND.” Nezd meg az RS232 szabvanyt... +12V es -12V a ket logikai szint... Idézet: „A számítógépemen a soros porton megmértem a feszültséget, hogy alkalmas-e hozzá külsőtáp nélküli égető.” Ettől csak kis mértékben függ. Nézz fel az oldalamra, ott le vannak írva a okok.
Nálam az AVAST vírust észlel, ezért nem néztem meg az oldalad. Valóban vírusos?
Nem értem mi lehet, mert nálam is jelez! Utána járok!
Mindenkinek köszönöm a jelzést és a segítséget is(privátban is)!
A dolgot megoldottam az index.html törlésével és az eredeti fájl újbóli felmásolásával. Nem tudom hogyan lehetett vírusos egy TVN szerveren futtatott fájl, remélem nem fog visszatérni. Próbálom jelezni a szolgáltatónak a dolgot. Egyébként egy JS:Cruzer-C [Trj] vírus fertőzött. Ha van lehetősége annak aki felnézett az oldalamra a napokban, az nézze át a gépét egy keresővel. Mégegyszer köszönöm!
HM.. Az nyílván egy JavaScript nyelvű féreg.
Érdeklődni szeretnék, hogy valaki foglalkozott-e már evvel a PSP-vel? Én igazából arra szeretném használni, hogy 2 vagy több (ha lehet) 16F877-est összekötök a buszon, hogy ezáltal több portom és bitem legyen! Ez kivitelezhető-e szerintetek? Sajnos hardveres alkalmazást nem találtam a neten ehhez a témához.
Vannak port bővítő IC-k a microchiptől. Keresd a port expander kifejezést az oldalukon, van sok.
Köszönöm! Nem is rosszak! Csak nem hiszem, hogy magyarországon léteznének ezek a perifériák forgalomban.
Egyelőre még nem akarok átváltani 18F szériára, pedig azokban van elég port, és bit.
Pl: MCP23017 párszáz forint darabja és mindjárt két 8 bites portot kapsz. I2C és SPI buszos változat is van...
Már hallottam régen a ChipCad-ről, de még nem látogattam el hozzájuk idáig.
Nem semmi milyen választék van náluk, még típuson belül is! Na itt biztos találok kedvemre valót! Köszöm nektek a segítségeket!
Nah igen! Ez már döfi: PIC18F8722.
Lehet, hogy jövő hónapban be is rendelem és neki látok fejleszteni.
Olyan típust nézz, ami mellett ott van egy jel. A többit is meg lehet rendelni, csak várni kell rá(vagy többet kell rendelni) Én a 8720-at használom, jó.
Egy LEDvillogtató program tanulságai
PIC24HJ128GP502-höz írt programot próbálgatok Microchip C30 fordítóval. A feladat: PORTB 15. bitjének billegtetése. A bit állapotát természetesen sokféle módon át lehet billenteni ellenkező állapotba. Először a _LATB15 = !_LATB15; utasítással próbálkoztam, azután eszembe jutott, hogy van egy __builtin_btg() függvény, majd más lehetőségeket is kipróbáltam, s megnéztem, hogy milyen kódot generál belőlük a fordító. Meglepetés ért, íme az eredményhirdetés (és egy lecsupaszított tesztprogram):
Nem tudom, hogy van-e valakinek full verziója, de érdekelne, hogy a fenti programot hajlandó-e tovább optimalizálni a fordító? Utóirat: az egy dolog, hogy a _LATB15 = !_LATB15; sor 9 gépi utasításra fordul, nagyobb baj, hogy az eredetileg "atomi" btg LATB,#15 utasítás helyett egy nem "atomi" műveletsort generál, ami konkurrens környezetben (pl. RTOS vagy más többfeladatos rendszer) csúnya dolgokat produkál,ha a port különböző bitjeit konkurrens programszálak matatják.
Letoltottem az evaluation valtozatot, az 60 napig fullos. Ime az eredmeny -Os optimalizacioval:
Köszönöm a segítséget! Úgy látom, hogy csak a __builtin_btg() és a _LATB15 = !_LATB15 vonatkozásában van változás (a kód többi része nekem is ugyanígy fordult). A __builtin_btg() optimális lett, a másik kód hosszabb lett. Nekem ilyen kódot produkált a ferdítő:
Szia!
Egy ötlet C -ben (16-os családban használom, ahol nincs btg): _LATB^=0x8000; Vajon ezt mire fordítja? Idézet: „_LATB^=0x8000; Vajon ezt mire fordítja?” Furcsa dolgokra: Pontosítás: nem _LATB csak LATB. Optimalizálás nélkül:
Vagyis W0-ban kiszámolja 0x8000 és LATB XOR kapcsolatát, majd az eredményt visszaírja LATB-be. Optimalizálással (-O1):
Vagyis hozzáad 0x8000-et. Utóirat:
bezzeg egyetlen btg LATB,#11 utasításra fordul.
Szia!
Talán azért kezeli másként, mert a 15. bit egyben az előjel is... Idézet: „Talán azért kezeli másként, mert a 15. bit egyben az előjel is...” Nem gondolom, mert előjel nélkülinek van definiálva.
Szerintem egyszerűen csak "így jött ki neki a lépés"... Idézet: „„Talán azért kezeli másként, mert a 15. bit egyben az előjel is...” Nem gondolom, mert előjel nélkülinek van definiálva.” Nem is a LATB-vel van a problema, hanem a 0x8000 -el. ANSI C-ben integer promotion van. Meg kellene probelni:
Idézet: „LATB ^= (unsigned)0x8000;” Nálam ez is összeadásnak fordul:
A maga módján egyébként igaza van, csak nekem nem tetszik. |
Bejelentkezés
Hirdetés |