Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   297 / 360
(#) trabi007 válasza Firefighter1 hozzászólására (») Feb 1, 2018 /
 
Próbálozok még vele , de az a baj hogy sok mindent nem értek még a programmal kapcsolatban , és így elég nehéz rájönni mi miért is van vagy hogy mit miért is kell hogy ugy legyen , amugy 16f628A val próbálkozok , az nagy segítség lenne ha tudnál adni egy példaprogramot , elére is köszönöm.
(#) kokozo válasza Firefighter1 hozzászólására (») Feb 2, 2018 /
 
Vagy itt egy példa, hogy mire jó a waitunitllow funkció..
(#) kokozo válasza kaqkk hozzászólására (») Feb 2, 2018 /
 
Rosszul gondolod, és működik..
A működése: végtelen ciklusban fut a program és mivel semmi nem számít ezért ha elindul a program végigmegy a feltételes elágazás nem ágán a ledet kikapcsolva addig amíg a start gombot meg nem nyomják, ekkor " örökre" az igen ágba ugrik a progi ahol 30X loopba kerül.
Ahol bekapcsolja a ledet és ha a pause gombot megnyomod várni fog ameddig nyomva van, mivel ezt a funkciót erre találták ki, és nem kell elé a switch state.. ha a gomb el van engedve vagy meg se volt nyomva akkor tovább lép és vár 1s-t majd a 30-as loop maradandó számát újra és újra végig futtatja. ha kész a 30s + ha volt pause gomb akkor azzal az idővel növelve kilép a loopból és reseteli az "örökre" beakadást, és a feltételes elágazás nem ágával folytatódik.
(#) trabi007 válasza kokozo hozzászólására (») Feb 2, 2018 /
 
Szia. Köszi szépne a példaprogramot ez tényleg így elég egyszerü megoldásnak tűnik , de azt hogyan lehetne elérni , hogy míg a pause gomd nyomva van addig a led se világítana.
(#) kaqkk válasza kokozo hozzászólására (») Feb 2, 2018 /
 
Igazad van azért töröltem a hozzászólást
(#) kokozo válasza trabi007 hozzászólására (») Feb 2, 2018 /
 
Ugyanúgy mint ahogy bekapcsoljuk..
(#) Firefighter1 hozzászólása Feb 3, 2018 /
 
Egy kérdésem had legyen.... Cincog a FET... az lehet a magas freki miatt? mert ahogy latod a programban az még nincs szabályozva!
(#) Bakman válasza Firefighter1 hozzászólására (») Feb 3, 2018 /
 
Attól is lehet. Alapvetően nem probléma a viszonylag nagy frekvencia ha FET meghajtót használsz.
(#) Firefighter1 válasza Bakman hozzászólására (») Feb 3, 2018 /
 
100Ohm on keresztül van direktbe kötve a FET a PIC re.
Valamit ki kell találjak mert a nejem így nem engedi be a szobába! Szó mi szó tényleg zavaró!
Na mindjárt kikavarok neki egy alacsonyabb frekit hátha csökken a cincogás...
(#) Bakman válasza Firefighter1 hozzászólására (») Feb 3, 2018 /
 
Első lépésként a FET gate lábán kell megmérni a jelalakot oszcilloszkóppal, az sokat elárul a meghajtásról.
(#) Firefighter1 válasza Bakman hozzászólására (») Feb 3, 2018 /
 
Neeem... első lépésben a nejemnek kell megmagyarázzam hogy kell nekem egy oszcilloszkóp!
Ígyis már kezdem nagyon belakni a műhelyszekrényemet! ugyhogy azt hiszem át kell rendezzem kell csináljak egy mini labortápegységet és egy mini forrasztó állomást
Amugy már nézegettem PC-s vagy androidos scopokat azokat meg szabad venni?
(#) Bakman válasza Firefighter1 hozzászólására (») Feb 3, 2018 /
 
Erről inkább itt érdeklődj: Oszcilloszkóp vétel...
(#) Firefighter1 hozzászólása Feb 3, 2018 /
 
Amúgy hogy a topiknál maradjunk most a tmr2 vel hívatom be a pwm makrot 200 Hz a freki és nem vibrál a led meg nem is cincog a FET!
(#) Bakman válasza Firefighter1 hozzászólására (») Feb 3, 2018 /
 
Azért nem cincog, mert megváltozott a frekvencia. A PWM alapesetben a Timer2 -es időalapot használja. Ha közben másra is használod az időzítőt, elmászik a PWM frekvencia.
A hozzászólás módosítva: Feb 3, 2018
(#) frekivalto hozzászólása Feb 6, 2018 /
 
Hali.

Nem tudom, hogy miért nem jó a "C-kód" a flowcode 8-ban. Letöltöttem, hogy megnézzem, milyen lett az új verzió, csak próbaképp...

A V5-ben nincs vele gondja, a V8-ban hibát ír ki.
OSCCON regiszter: belső órajel beállítás
8MHz, belső.
A hozzászólás módosítva: Feb 6, 2018
(#) Bakman válasza frekivalto hozzászólására (») Feb 6, 2018 /
 
Flowcode 7 lesz az.
  1. osccon=0b11110110;
helyett
  1. OSCCON=0b11110110;
A hetes verzióban már a Michrochip féle fordító van, pár dolog másként működik a C kódoknál. Leginkább kis- és nagybetűk változtak. Itt van pár példa: Bővebben: Link.
A hozzászólás módosítva: Feb 6, 2018
(#) frekivalto válasza Bakman hozzászólására (») Feb 6, 2018 /
 
Köszi a segítséget. Nem gondoltam volna, hogy ilyen problémába belefuthatok.
Igazad van, 7-es verzió
(#) frekivalto hozzászólása Feb 7, 2018 /
 
Jó reggelt.

I2C kommunikáció...
Ebben az esetben ismerni kell(ene) a céleszköz "address" azonosítóját. Jobb esetben kideríthető könnyen, rosszabb esetben sajnos nem. Ezért készítenék egy lekérdező rutint, ami egy LCD-re kiírná az adott eszköz címét.
Eddig DAC chipet használtam, aminek tudtam a címét, így nem volt gond ezzel. (lásd csatolt képen)

Viszont hogy kérdezzem le, ha nem tudom a címét? Anomália?

Jártasabb "programozó kollégák" mit javasolnak?

Köszönettel, Peti

i2c.JPG
    
(#) Bakman válasza frekivalto hozzászólására (») Feb 7, 2018 /
 
Adatlap nélkül a céleszözt nem lehet programozni. Ha van adatlap, van cím is. Nem?

Alapvető probléma, hogy ahány I2C eszköz van, kb. annyi módon kell megszólítani őket. Van, amelyiknek az I2C cím után két bájtban kell megadni a belső regisztercímet, van, amelyiknek egy is elég. A lehetőségek a végtelen felé közelítenek, próbálkozni kb. lehetetlen, illetve felesleges.
(#) frekivalto válasza Bakman hozzászólására (») Feb 7, 2018 /
 
Én is így gondoltam.

Próba kép vettem egy ilyet:
OLED W click

Na, ehhez nem találtam adatlapot. Ssd1306 meghajtó IC. Úgy gondoltam, hogy megtalálom a neten a címet, de eddig sajnos nem leltem.
(#) Bakman válasza frekivalto hozzászólására (») Feb 7, 2018 /
 
0x3C, 0x3D, 0x78, 0x7A

Ezeket találtam a neten.
(#) frekivalto válasza Bakman hozzászólására (») Feb 7, 2018 /
 
Köszi. Hol találtad?
(#) Bakman válasza frekivalto hozzászólására (») Feb 7, 2018 /
 
Google:sSsd1306 i2c address
(#) frekivalto hozzászólása Feb 11, 2018 /
 
Sziasztok!

Még mindig azzal a problémával küzdök, hogy encoder makróban új funkcióként felvett "set_internal_counter" utasítással beállítsak egy megadott értéknél nagyobb változót.
Tehát, ha encoder_count értéke nagyobb, mint 396, akkor encoder_count=396, majd set_encoder_count--->396. Így szeretném az encodert használni 0-396 érték között. Ezt az értéket elosztom néggyel, akkor az encodert egyesével léptetve változik az a változó (0-99 közöttt), amivel tovább fogok dolgozni (enc_value). Viszont nem 396-ot ír be a változóba, hanem 143-at.

Ami érdekes, hogy ha 252-ra maximálom, akkor jól működik.
Az alábbiakban példát is mutatók:
JÓ.
Encoder_count----encoder_value----max. érték
4--------------------1------------------252
8--------------------2------------------252
252-----------------63-----------------252

ROSSZ.
4--------------------1------------------256
8--------------------2------------------256
252-----------------63-----------------256
256-----------------64-----------------256
3--------------------0------------------256
7--------------------1------------------256

Úgy gondolóm, hogy ott lehet a hiba, ahol a makróban beállítom az értéket, ott BYTE típusú a változó. Ebben az esetben max. 255-ig adhatom meg. Esetleg nem tudom valahol átllítani ezt a makróban, hogy ne BYTE legyen, hanem INT típusú?
Mellékeltem a makróban lévő utasítást is.
(#) Bakman válasza frekivalto hozzászólására (») Feb 11, 2018 /
 
Milyen kontrollert és enkódert használsz? Egyszerűbb lenne egy manuális enkóder kezelés, ott azt csinálsz, amit akarsz.
(#) Bakman válasza frekivalto hozzászólására (») Feb 11, 2018 /
 
Mellékeltben egy Gray kódú kimenettel rendelkező, enkóder kezelő példa. Egy feltétele van a dolgonak, a kontrollernek tudnia kell két Interrupt On Change bemenetet kezelnie.
(#) frekivalto válasza Bakman hozzászólására (») Feb 11, 2018 /
 
Jelenleg ezt: Bővebben: Link
Kipróbáltam más típusúval is, de nem változott semmi.
Kontroller: PIC18F4523. Port megszakítással kezelem le az enkodert. Ez van összerakva próbára. A végleges nem ez lesz. Majd olyan PIC-et kell keresnem, amiben 2db UART van, egy kell a HMI-nek, egy pedig az APC220 rádiós modulnak.
Mire gondolsz a manuális enkóder kezelésre?

Nem lehet ezek szerint a BYTE típust átírni INT-re?
A hozzászólás módosítva: Feb 11, 2018
(#) Bakman válasza frekivalto hozzászólására (») Feb 11, 2018 /
 
Időközben feltöltöttem egy példát. Két UART-hoz tudom javasolni a PIC18F26K22-es kontrollert. Ugyanakkor ha van HMI, én nem szenvednék enkóderrel ha nem feltétlen kell, ott a kijelző, pötyögjön azon a felhasználó.
(#) kaqkk válasza frekivalto hozzászólására (») Feb 11, 2018 /
 
De lehet ! Ahol a változót létrehozod ott lehet a tulajdonságait állítani .
(#) frekivalto válasza Bakman hozzászólására (») Feb 11, 2018 /
 
Igen, láttam. Néztem a hogy milyen típus van. Melyiket javaslod?
6puls
24puls
A vevő oldalon nem biztos,hogy lesz encoder, de az adó oldalon kell, az fogja adni az "alapjelet" a hangerőszabályozáshoz.
A kontrollert megnézem, szerintem jó lesz.
A hozzászólás módosítva: Feb 11, 2018
Következő: »»   297 / 360
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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