Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   258 / 1320
(#) Crea válasza potyo hozzászólására (») Aug 4, 2008 /
 
Asszem nem fogok unatkozni , köszi a linkeket
(#) potyo válasza Crea hozzászólására (») Aug 4, 2008 /
 
Én is úgy kezdtem annakidején, mint te, hogy volt egy ötletem áramkörre, amihez már kontroller kellene. Elkezdtem nézelődni a neten, miket lehet elolvasni. Végigolvastam a témákat, amiket csak találtam, az oda linkelt dolgokat, stb., és mire végeztem vele, addigra képben voltam, hogy mégis mi kell az induláshoz. Rá kell szánni 1-2-3 hetet az anyagok végigolvasására, de utána egy csomó dolgot már tudni fogsz.
(#) trudnai válasza Crea hozzászólására (») Aug 4, 2008 /
 
Szia Crea,

A GND-t szoktak referencia pontnak is nevezni, de azt hiszem tenyleg jobb, ha elobb kicsit foglalkozol az elektronika alapjaival, amiket potyo megadott linket, ill. ehhez a GND temehoz azt hiszem kicsit kapcsolodik az a fold hurokkal foglalkozo cikk is ami szinten itt a HE-n megtalalhato.
(#) Stakypot hozzászólása Aug 4, 2008 /
 
bocs az off ért...
(#) Thowra hozzászólása Aug 5, 2008 /
 
Üdv mindenkinek!
Ismét szeretném a segítségeteket kérni egy kis programmal kapcsolatban. A progi C ben íródik. A gond a következő: Van két szám (x1, x2) amiket szeretnék összeadni és az eredményt kiíratni lcd re. Eddig itt tart:
int s,x1,x2,xe;
x1=1;
x2=2;
xe=x1+x2;
lcd_putc(????????????);
Itt a gond. Az xe értékét szeretném kiíratni de eddig bárhogy variáltam nem sikerült
Mi ennek a működő menete?
Gogle sajnos nem segített
Előre is köszönöm.
(#) MPi-c válasza Thowra hozzászólására (») Aug 5, 2008 /
 
Nézd meg a printf függvényt!
(#) Thowra válasza MPi-c hozzászólására (») Aug 5, 2008 /
 
Üdv!
Megkukucskáltam, addig ok, hogy össze kell kombinálni, valami ilyesmire gondolok: printf(lcd_putc,x2); de így nem ok . A pontos szintaxisát nem találom.
(#) lidi válasza Thowra hozzászólására (») Aug 5, 2008 /
 
Egy C könyvben utána tudsz nézni. Először konvertáld át sztringbe a számodat, pl sprintf -el, azután a string karaktereit küldd ki az lcd-re. (ha nincs string küldő lcd rutinod csak karakter küldő)

nálam így működik, igaz ez float-ra van, de int-re is hasonlo
[code:c]
sprintf(string,"%.3f",szam);
putst(string);
[/code]
(#) Thowra válasza lidi hozzászólására (») Aug 5, 2008 /
 
Üdv!
C s könyvem nincs
A súgóban lévő példákat lestem meg, nem igazán működik.
A konvertálás elvileg ok, a kiíratás már nem, értelmetlen pontok jelennek meg
(#) MPi-c válasza Thowra hozzászólására (») Aug 5, 2008 /
 
Nem kell stringgé konvertálni!
Ez annyira alap c "dolog", hogy tényleg minden könyvben benne van.
Kulcsszó formátum-specifikáció, ezt nézd át.
Egyébként: printf(lcd_putc,"Blabla %d",xe); Ha nincs ott a 'Blabla' szöveg akkor is kell valami a formátumról, pl. így printf(lcd_putc,"%u",xe);
Azt nézd meg mit jelent a %d vagy a %u és még milyen lehetőségek vannak.
(#) Doriat válasza lidi hozzászólására (») Aug 5, 2008 /
 
Hello
Köszi a választ.
Letöltöttem a HitechPicc lite-ot, de nem igazán világos első látásra, hogy hogyan tudok benne mondjuk egy kimenetet piszkálni, vagy figyelni.
(#) Thowra válasza MPi-c hozzászólására (») Aug 5, 2008 /
 
Üdv!
Köszönöm a segítséget,működik :yes:
(#) mammut hozzászólása Aug 5, 2008 /
 
Üdv mindenkinek!

Most vettem életem első pic-jét egy 16F84A-04/p mikrokontrollert és szeretnék hozzá egy égetőt építeni LPT-portra, ha valaki tud egy segítő linket küldeni, hálám örökké üldözné! Viszont a 7407-es ic helyett csak 7406-ot tudok alkalmazni, mert itt kecskeméten nem találtam sehol.
(#) szidom válasza mammut hozzászólására (») Aug 6, 2008 /
 
(#) Doncso válasza mammut hozzászólására (») Aug 6, 2008 /
 
Esetleg 7417-est is használhatsz hozzá ha kapsz a 07-es helyett.
(#) trudnai válasza mammut hozzászólására (») Aug 6, 2008 /
 
A 7406-os az inverter is, a 7407-es az pedig csak driver. Ha a szoftverben at lehet allitani, hogy invertalt, akkor lehet hasznalni azt is. Amugy amig nincs kapcsolas addig ne dontsd el, hogy milyen alkatreszket hasznalsz Ja, a masik, hogy sok helyen lehet venni alkatreseket postan rendelve is - pl a HEstore-ban is.
(#) mammut hozzászólása Aug 6, 2008 /
 
Elkészítettem a kapcsolási rajzot Eagle-ben, de mielőtt elkészíteném a nyák rajzot megkérhetnék valakit, hogy nézze át minden jó helyre van-e kötve a rajzon.
Az lvp lábat nem találtam sehol, viszont egy másik oshon rajzon sincs rajta. Rajz

Nagyon köszönöm a segítségeteket!

oshon pic.png
    
(#) MPi-c válasza mammut hozzászólására (») Aug 6, 2008 /
 
Szia!
Alaposan nem néztem meg, mert még a dolgozóban vagyok, de első látásra azt tanácsolom neked, ne rakj be a cél PIC-nek foglalatot. Elég egy 5-ös tüskesor /Vpp,Vdd, GND, PGD,PGC/. és akár egy próbapanelen, akár a leendő céláramkörben többféle PIC-et is tudsz majd programozni, nem csak 18 lábút.
Az lvp a PGM láb lenne. Ez lehet húzni gnd-re, de az sem gond, ha lógva marad.
(#) mammut válasza MPi-c hozzászólására (») Aug 6, 2008 /
 
Nagyon szépen köszönöm a segítségeidet! Igen! Jó ötlet csak a programozáshoz szükséges szálakat kivezetni tüskesorra, ahhoz meg akár lehet csatlakoztatni egy többfoglaltú panelt, vagy a programozandó pic áramkörét!
(#) watt válasza mammut hozzászólására (») Aug 7, 2008 /
 
Idézet:
„Igen! Jó ötlet”

Ez nem ötlet, ezt így szokták a profik...
(#) ZLED hozzászólása Aug 7, 2008 /
 
Sziasztok!
Van egy kis gondom.
saját karaktereket akarok programozni a kijelzőmbe, de valahogy nem megy, hülyeségeket kapok. mikroPascalban csináltam a teszt progit.

program TEST12;
Var ch, i:byte;

const character0: array[0..7] of byte = (0,0,0,0,0,0,0,31);
const character1: array[0..7] of byte = (0,0,0,0,0,0,31,31);
const character2: array[0..7] of byte = (0,0,0,0,0,31,31,31);
const character3: array[0..7] of byte = (0,0,0,0,31,31,31,31);
const character4: array[0..7] of byte = (0,0,0,31,31,31,31,31);
const character5: array[0..7] of byte = (0,0,31,31,31,31,31,31);
const character6: array[0..7] of byte = (0,31,31,31,31,31,31,31);
const character7: array[0..7] of byte = (31,31,31,31,31,31,31,31);


begin
ADCON1 := $82;
INTCON := 0;
TRISA := $FF;
TRISB := %00000000;
PORTB := 0;
LCD_init(portb);
LCD_cmd(LCD_Cursor_off);
LCD_cmd(lcd_clear);
LCD_Cmd(64);
for i := 0 to 7 do LCD_Chr_Cp(character0[i]);
lcd_cmd(73);
for i := 0 to 7 do LCD_Chr_Cp(character1[i]);
lcd_cmd(82);
for i := 0 to 7 do LCD_Chr_Cp(character2[i]);
lcd_cmd(91);
for i := 0 to 7 do LCD_Chr_Cp(character3[i]);
LCD_Cmd(100);
for i := 0 to 7 do LCD_Chr_Cp(character4[i]);
lcd_cmd(109);
for i := 0 to 7 do LCD_Chr_Cp(character5[i]);
lcd_cmd(118);
for i := 0 to 7 do LCD_Chr_Cp(character6[i]);
lcd_cmd(127);
for i := 0 to 7 do LCD_Chr_Cp(character7[i]);
LCD_Cmd(LCD_RETURN_HOME);
LCD_cmd(lcd_clear);

while true do
begin
for i := 0 to 7 do
begin
ch := i;
LCD_chr(1, 1, ch);
LCD_chr(1, 2, ch);
Delay_ms(1000);
end;
end;
end.

Valaki tud segíteni?
(#) Balázs hozzászólása Aug 7, 2008 /
 
Üdv!

Én is egy kis segítségre szorulnék. Egy PWM vezérlést kellene írnom Assembly-ben, a következőképpen: Van három regiszterem (F0,F1,F2), melyekben számokat tárolok 0-255-ig. A kimeneteken van három LED (LED0-2), és ezeknek a fényerejét kellene változtatni az F0-2 függvényében (0=0% és 255=100%) egymástól függetlenül. Ezek a számok egyébként nem konstansok, a TIMER0 bekövetkezésekor felülíródhatnak, ekkor értelemszerűen módosulnia kéne a fényerőnek.

A gondom ott van, hogy hármat is kellene egyszerre, egymástól függetlenül vezérelni. Egy még menne a "be...késleltetés...ki" módszerrel, de háromnál már gondban vagyok.

Kérem, akinek van ötlete, segítsen, természetesen nem várom el, hogy megírjátok helyettem, csak egy kis löket kéne...
(#) watt válasza Balázs hozzászólására (») Aug 7, 2008 /
 
A három kimenethez tartozna egy-egy számláló, amiket TimerX megszakításkor növelnél. Minden megszakításkor a növelés után le kell ellenőrizni, hogy a kimenetekhez tartozó kitöltést beállító értékek egyenlőek-e a hozzájuk tartozó számlálók értékeivel, ekkor váltani kell a kimenetet, majd a számláló végértékénél ismét(ha 8 bites a számláló és a kitöltést beállító értékek is, akkor ez 255 után lesz. lehet nagyobb számokkal is dolgozni.). A PWM freki a megszakítás üteme osztva a számláló max értékével lesz(8 bit esetén 256-al). Remélem valamennyire érthető...
(#) Balázs válasza watt hozzászólására (») Aug 8, 2008 /
 
Köszönöm a válaszodat! Most gyorsan összecsaptam valami ilyesmit, és úgy látom, működni fog, holnap (ma) kísérletezek vele.
(#) delmur82 hozzászólása Aug 8, 2008 /
 
Sziasztok.

Nekem igazából nem programozási kérdésem lenne hanem kapcsolási. Építettem egy áramkört pic-el.(16F84A). Szóval a progi amit írtam úgy működik hogy a pic egy lába idöközönként húz egy relé-t. (szépen diódázva ahogy kell.) A problémám az hogy a pic-et zavarják a a külső hálózati behatások. Teszem azt ha a konektorból kihúzok egy csatlakozót (bármit tv vagy más kütyü) akkor a pic vezérli a kimenetét pedig azt még nem kéne. A pic szürt egyen feszkón majd stab IC- n keresztül kap tápot. Próbáltam még jobban szűrni a tápot 10000 micro -s kondi de akkor is zavarja. Volt valakinek hasonló baja? Köszi a help-et.
(#) potyo válasza delmur82 hozzászólására (») Aug 8, 2008 /
 
Igen, volt, amikor nem volt szűrve a táp rendesen vagy az áramkör rosszul volt megtervezve vagy a program rosszul volt megírva. Rakd fel a kapcsolási rajzot és a programot is, és lehetőleg nyákrajzot is.
(#) Müszi válasza delmur82 hozzászólására (») Aug 8, 2008 /
 
Én nagyon kezdő vagyok a témában, de egy tippem azért lenne: Erősítőknél a trafó elé EMI filtert szoktak rakni, hogy ezeket a zavarokat ne halld a hangszóróban
Csak kérdés hogy ez PIC-re is érvényes-e?
(#) kobold válasza delmur82 hozzászólására (») Aug 8, 2008 /
 
Még nem sikerült ilyet produkálnom, pedig a 470 µF-ot ritkán lépem túl a staboknál.
100 nF hidegítőkondi van közvetlenül a Vdd lábánál (14, illetve smd-nél 15, 16)?
Ha nagyon hosszú vezeték fut a reléhez, az működhet antennaként, és esetleg összeszed valamit, amitől aztán meggajdul a PIC, de ez már elég vad ötlet, szerintem.
(#) delmur82 hozzászólása Aug 8, 2008 /
 
Nos a kapcsolási rajz a képen látott-hoz hasonlít. Annyiban tér el hogy a PIC egyik kimenete egy 1 kilos ellenáláson keresztül vezérel egy BC tranzisztor bázisát ami földet kapcsol egy relére. A relé másik kivezetése állandó +12 V ot kap. (12 V-os stab IC) A program egyébként szépen működik belső TMR megszakítás segítségével billentem 1-be a kimenetet. Mint mondtam a tápegységet is külön szűrtem. EMI filtert még nem próbáltam.


PICrajz.gif
    
(#) delmur82 hozzászólása Aug 8, 2008 /
 
Egyébként most kezd jönni az ötlet hogy rápillantottam a kapcsolásra Keveslem azt a 10 micro-t.
Következő: »»   258 / 1320
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