Fórum témák
» Több friss téma |
Mi a hiba? Gondolom jó fordító van kiválasztva, a 2 db c fájl a Sources, a maradék 1 db h fájl a Headers mappában van, innentől nem sok hibalehetőség van.
Itt van, lementettem a képernyőt.
Na most itt valami keveredés van. Van egy header.c fájlod, amit nem tudok, hogy mire van. Csak az a 3 fájl legyen a projectben, amit küldtem. A main.c és az lcd.c a Source Files mappában, az lcd.h pedig a Header Files mappában legyen.
A fordító egyébként arra panaszkodik, hogy a header.c fájlban már egyszer létrehoztál egy LCDPutCmd nevű függvényt, de mivel erről a main.c fordításakor nem tud a fordító, ezért az abban lévő LCDPutCmd függvényt a híváskor automatikusan (implicit) létrehozza, ami persze ütközni fog az "eredeti" függvénnyel. Ezért kell az lcd.h. Ez a fájl mind a main.c-be, mind az lcd.c-be be van "include"-olva, így a fordító tudni fogja, hogy mindenhol ugyanarról a függvényről van szó. Szerk.: most nézem, hogy még azt a main.c-t használod, amit legelső alkalommal "összeollóztunk" a honlapról. Az nem kell. Az kell csak, amit küldtem. A hozzászólás módosítva: Nov 6, 2012
Végigjátszottam így is, de most ez van.
A hozzászólás módosítva: Nov 6, 2012
Gyanítom az lehet a baja, hogy olyan elérési útvonalon van a projekt mappája, amiben van ékezet ("Letöltések"). Én megpróbálnán csak szimplán a Dokumentumok alá létrehozni.
Létrehoztam ahogy írtad, de ugyan az a hiba.
Bocsi, de most mennem kell, majd holnap folytatjuk.
Tibi
Idézet: Kesztyűben akarsz dudálni, vagy miért kell ilyen nagy távolság? Nagyságrendben mekkora kapcitásváltozás várható (1-10-100 pF?)„Azt sem tudom, hogyan csináljak pic-cel olyan kapacitív kapcsiolót ami 1-2mm-es távból kapcsol.” Módszerek: - Csinálhatsz relaxációs oszcillátort az analóg komparátorból, melynek a frekvenciája megváltozik a szenzor kapacitásának megváltozásakor. - Mérheted a kapacitás feltöltődési/kisülési idejét ADC-vel. - Mérheted a kapacitás feltöltődési/kisülési idejét a portbemenet okozta megszakítás felhasználásával. Idézet: Feltehetőleg elegendő időnként ránézni a szenzorra. Közben altathatod a CPU-t.„hogy megmaradjon az alvó állapot áramfelfételhez legalább közeli fogyasztás...” A hozzászólás módosítva: Nov 6, 2012
Félmegoldásnak csatolom a lefordított HEX fájlt.
Az uj 12F18xx, 16F18xx sorozatban gyari tartozek a kapacitiv erzekelo. Ugy hivjak hogy CPS.
Köszi a HEX-et majd kipróbálom.
De még mindíg foglalkoztat az MPLAB dolog, hogy ymiért nem akarja lefordítani. Tibi
Mellékeltem a teljes project-et. Annyi, hogy a build konfigurációt lehet, hogy át kell szerkeszteni, mert az én gépemen lévő elérési utakra van beállítva. Ez meg tudod tenni úgy, hogy megnyitod a project-et, rámész oda, hogy Run->Set project configuration -> customize -> New -> Manage configurations -> New -> Beírod a nevét, pl. MyConfig -> OK, utána a bal oldalon rákattintasz a MyConfig-ra és beállítgatod a szükséges dolgokat (fordító, programozó, PIC típusa).
Ha kész, akkor OK, utána a felső eszköztáron lévő legördülő menüből kiválasztod a MyConfig-ot és megpróbálod lefordítani a project-et.
Kezdőként tanulgatok picelni. delphi háttérrel mikropascal-lal boldogulnék leginkább. El is kedtem
a "micropascal_pro_pic 2012" -vel próbálgatni, de hamar elértem a demo limitet és most a 3.2 pro for pic a tanulópad. És itt kezdődnek a problémák. Analóg jelet mérnék és az eredményt kiíratnám egy lcd-re. Amit a pic2012 helyesen adott is vissza, de a 3.2 egészen más eredményt ad. Bizonyára a 2012 alapból állított be olyan regisztert amit a 3.2-ben nekem kéne. Segítsetek beállítani, hogy korrekt eredményt kapjak. A próbapic 16f690. a kérdéses kód Ansel:=%00000100; Anselh:=0; TrisA:=4; . . . adc := ADC_Read(2); tlong:=adc*5000; tlong:=tlong/1023; és ezt az értéket íratnám ki az lcd-re 5V helyett 0.12 körüli értéket kapok a 2012 pro pic-cel ez a kód jó volt.
Üdv mindenkinek!
Egy PIC24F-el küzdök, de képtelen vagyok az A/D átalakítót scan módra konfigurálni (pontosabban egyszer már sikerült véletlen, de az a forrás az enyészeté lett). A lényeg hogy egyszerre szeretném az AN0 és az AN1-et beolvasni, de nem megy.... Mit nem csinálok jól? (C30)
Az AN0 értéket szépen kiolvassa, de az AN1 mindíg 0 marad.
Köszönöm a sok megoldási lehetőséget. Egyébként csak egy vékony plexi lapon kell áthatolnia. Köszönöm.
Idézet: Minél nagyobb a távolság, annál nagyobb felületek kellenek az üzembiztos érzékeléshez. Finom érzékeléshez csak a PCB forrasztásvédő lakkján kell "áthatolni". Valamit esetleg segíthet (ha nyomógombról és nem csúszkáról van szó) ha a "nyomógomb" érzékelő felületet földelt gyűrű veszi körül (nyitott kondenzátor). „csak egy vékony plexi lapon kell áthatolnia.”
A PIC-kwik projektben mindent leírtam ezzel kapcsolataban. Ha jól értem a problémát, akkor neked az az adc7scan1.c vagy adc7scan2.c mintapélda lehet érdekes. A kettő között az a különbség, hogy a második példa ping-pong módban dolgozik.
Vannémi különbség a PIC24F és a PIC24H/dsPIC33 ADC moduljának felépításáben, erre ügyelni kell. A fentebb ajánlott példák a DMA nélküli PIC24F-hez vagy PIC24H-hoz jók. A PIC24H/dsPIC33 szimultán mintavételezést is tud, arra is van példa. A fejlettebb típusok DMA-val is rendelkeznek, arra is van példa.
Köszönöm!
Úgy tűnik jó lesz a dolog. Voltak bugok, már csak a szimulátor (ISIS) szórakoztat .
Helló!
Na úgy néz ki, hogy sikerült lefordítanom az MPLAB-al . Összehasonlítottam a tieddel és minden stimmel. A 8.56-os MPLAB-al sikerült , HI-TECH universal toolsuit-el. Tibi
Olyan kérdésem lenne, hogy én mikroC PRO for PICet használok és ugye az LCD-t 4biten vezérli.
Ugye így néz ki. Na most ezt 8 bitesre, hogy lehetne átírni? Vagy felesleges bajlódni vele? Azt a módszert próbáltam ahol "sbit LCD_DX_Direction at TRISBX_bit;" hozzáírom pluszba, de akkor meg ugye nem ment.
Az a probléma, hogy nemcsak ezeket a definíciókat kell átírni, hanem az LCD inicializálását végző függvényt (más üzemmódot kell beállítani) és az egy karaktert kiküldő függvényt is (nem két részletben kell kiküldeni a bájtot).
A User Projects oldalon találsz mintapéldát mikroBasic, mikroPascal és mikroC for PIC-hez (Filip Jankovic, 2009. május 12.)
Áhhá! Akkor jól sejtettem a dolgot, hogy mi a baja!
Köszönöm a választ!
Az rgb led ben 3 szín van , minek ehhez 24 PWM??
Hogy minden LED anódját külön tudjam vezérelni, 8 LED 8*3=24.
semmi értelme , ha van 3 külön állítható pwm ami a szineket keveri akkor a ledek közül bármelyik rákapcsolható a 3 pwm kimenetre rákötöd az összes led - anódját és csak a katódokat kapcsolgatod ...
Na erre nem is gondoltam, de sokkal logikusabb mint 24 PWM csatorna Köszi, akkor elkezdek LED katód kapcsolgatással.
Sőt, ha egy kicsit jobban utánanéznél a belinkelt videó alatti linken, akkor megtalálnánd a videón látható eszköz kapcsolási rajzát, mely szerint csak EGYETLEN egy PWM kimenet kell, a többit mátrix szerűen multiplexelve vezérli, minden színnek külön láb, minden RGB LED-nek külön láb, így az az egyetlen PWM mindegyiket vezérli
Az illető egy 24F szériás PIC-et használt, de ezt 18F-el is meg lehet oldani. Ránézésre ezzel a módszerrel azt nem lehet megoldani, hogy egyidőben két különböző LED különböző színben világítson (pl. az egyik led piros míg a másik zöld, ezzel a módszerrel csak azt látnád, hogy mind a kettő szárgán világít, mivelhogy egyszerre mind a két szín és mindkét led vezérelve van), de mivel az emberi szem könnyen becsapható így nem szükséges egyszerre meghajtani mindkét LED-et és színt, hanem csak felváltva (először egy bizonyos ideig meghajtod a piros sínt és kiválasztod az egyik ledet, eddig a többi nem világít, majd ugyanannyi ideig a zöldet és egy másik ledet) így már "egyszerre" (a valóságban külön-külön csak nagyon gyorsan váltogatva) lesz az egyik piros és a másik zöld, és ezt még a többi színnel és leddel is el lehet játszani, csak annyi a teendő, hogy a LED-eket és a színeket nem folyamatosan kell megvezérelni, hanem gyorsan kell váltogatni (multiplexelni). Az emberi szem a másodpercenkénti 24 képkocka levetítését már folytonosnak érzékeli, így az a nagyon gyors kapcsolgatás nagyobb kell legyen mint 24Hz (a gyakorlatban ez álltalában 100Hz, 1kHz szokott lenni és ekkor már biztos, hogy folyamatosnak fog tűnni
Húh .. köszi ezt a kimerítő választ , majd ezt kipróbálom 1 majd 2 leddel, és akkor majd bővítem.
Köszi!
Sziasztok.
Egy kis programmódosításban szeretnék segítséget kérni. Megépítettem próbapanelon ezt a kapcsolást: http://www.electronics-lab.com/projects/test/015/index.html Az a baj vele hogy DS18B20 típusú hőmérőszenzort használok (DS1820 helyett), amivel írja is hogy nem működik. Valamiféle konverziós időről beszél hogy módosítani kell a programban, igaz ezt meg a DS18S20-ra írja. A kérdésem, hogy működésre lehet bírni ezt a hőmérőt DS18B20-as típusú szenzorral? Mit kellene módosítani a programon? |
Bejelentkezés
Hirdetés |