Fórum témák
» Több friss téma |
Ha jól látom, akkor van egy olyan utasítás a címgenerálás előtt ami a RAM WE lábát alacsonyba húzza. Ezután meg változtatod a címet. Ez nem jó. A címnek szerintem a WE alacsonyba húzása előtt kinn kéne lenni, és ne is változtasd, csak miután visszaraktad magasba a WE-t.
Meg nekem úgy tünik mintha összekeverted volna melyik PORTA láb mit vezérel. Nem látom hogy beírás után a RAM WE lábát hol teszed vissza magasba. Meg hogy a PORTA.0-t a kiolvasásnál minek bántod, ha az elvileg a konverter órajele. Legalábbis ha a kapcsolás szerint van megépítve. Tehát szerintem így kéne az írást: Konverter órajel egyik éle; Címgenerálás (közben mehet a konverter másik órajel éle); aztán a konverternél ha kell várni az eredményre akkor nop. WE alacsony nop (a ram sebességtől függően) WE magas lényeg hogy a cím a WE alacsony előtt a portokon legyen és amíg alacsony addig ne változtasd, és a WE-t rakd vissza 1-be, ha beírta az adatot. A másik hogy én nem a PORTD.7-et tesztelném hogy túlcsordult-e, hanem a k bájtot, de ez lehet hogy mindegy.
Én ma beforrasztottam, az összes átkötést a panelra (amik már nem via-k hanem normál vezetékek....)és leellenőriztem a digitális panelt zárlat szempontjából.... Ma csak a digitális panelt (vagyis amennyi kész van belőle)kapcsoltam be. Persze az elején elfüstölt a tápban egy induktivitás
![]() Az hogy miért ez a mode gomb ikonja azt magam se tudom... most kifogytam az ötletekből...
Egész jól alakul. Én igazából az analóg részre lennék majd kíváncsi. Már csak az lehet a gyengepontja. Sajnos nekem még sokára lesz mire itt tartok.
Igazad van. Tényleg benne maradt a kiolvasásnál az órajel generálás. Copy-Paste-t használtam és elfelejtettem kiszedni. Köszi hogy kiszúrtad.
![]() Az engedélyező lábakat szándékosan hagytam LOW-n végig. Az egyik RAM adatlapján volt egy olyan írásmód ami a címzéssel ír be. Délután még az engedélyező lábakkal variálok egy kicsit, aztán majd leírom mire jutottam.
azért gondoltuk h nem piccel címzed, mert volt egy korábbi rajzod, (mostaninál jóval bonyolultabb) ahol 4db 4 bites icvel ment a címzés. Az adatküldést jobb lett volna a usartra bízni, nem peidg szoftveresen..(nagyobb sebesség miatt főleg)
meg vannak gotok amiket szerintem kihagyhatnál, csak pár sort kéne felcserélni, megsprórolnál 2 utasítsnyi időt...
Ja, nem volt más lehetőségem az USART-ra , mert elfogytak a PIC lábai.
Ez még csak egy "előszkóp". A célom egy lehetőleg minél egyszerűbb konstrukció volt. Délután még kicsit játszok a WE engedélyezéssel. Igaza lehet Gory-nak, mert lehet hogy nem mindegyik fajta RAM támogatja azt a beírási módot, amit választottam. Épp azt akartam kipróbálni hogy ilyem módon müködik-e a WE engedélyezés, mert egy TTL IC-kből készült szkópnál már kicsit bonyolultabb lesz minden címzés előtt és után állítgatni. A goto-k elhagyásának dolgát nemértem. Hogy gondolod a dolgot?
pl ott a:
Goto x4 ASM: incfsz k + 1,f x4: . . ezt pl egyáltalán nem értem, azt az utasítást mindenképp átugorja ami közte van. nem??? a goto x4 helyére beírhatnád azt ami az x4: label alatt van. és akkor kimaradna egy felesleges goto.... nem lehet, hogy goto helyett te gosubot akarsz használni csak nem tudod ![]()
Ez a rész a következő módon müködik.
A "k" változó tulajdonképpen egy 2 bájtos változó. Az alsó bájtja maga a "k" változó a felső bájtja pedig a "k+1" változó. A "k" változó regisztere a 33, a "k+1" -é pedig a 34. Amikor a "k" változó eléri a 255-ös értéket akkor utánna a "0" érték következik. Ekkor a program átlépi a Goto "x4"-et és a "k+1" értékét megnöveli 1-el. Aztán ismét csak a "k" változó értékét növeli míg az el nem éri a 255-ös értéket. Beszúrom ide illusztrációnak. Filóztam én is egy darabig rajta hogy hogy is van ez, amikor 3éve megvettem a Kónya könyvét és megtaláltam benne ezt a kódot. x3: ASM: bsf PORTA,0 ASM: movfw k ASM: movwf PORTC ASM: movfw k + 1 ASM: movwf PORTD ASM: bcf PORTA,0 ASM: incfsz k,f Goto x4 ASM: incfsz k + 1,f x4: Goto x3
Kiszedtem az órajelet az olvasási részből. Sajnos a helyzet változatlan. Nekiesek a WE vizsgálatának.
ahaa, mivel nem vagyok annyira jártas assemlyben nemt tudtam, h a incfsz ilyet csinál.
miért nem szimulálod a progit, ha már 1* szimulátorban írtadvagymi..? nézed a regek tartalmát, azt h éppen hol tart meg a lábakat. csak kiderül mi a hiba. ![]()
Siker! Jó lett. Kicsit átírtam a programot. Így néz ki a beírás része.
x1: ASM: bcf PORTA,0 ASM: bsf PORTA,1 ASM: movfw k ASM: movwf PORTC ASM: movfw k + 1 ASM: movwf PORTD ASM: bsf PORTA,0 ASM: bcf PORTA,1 If PORTD.7 Then Goto olvas '16-ról 15 bitesre való átalakításhoz ASM: incfsz k,f Goto x2 ASM: incfsz k + 1,f x2: Goto x1 Tehát az órajel magasra állítását tettem közvetlenül a címzés után. Eddig az alacsonyra állítás volt mögötte. Ezenfelül a állítgatom a WE értékét. Most megpróbálkozok azzal hogy nem állítgatom a WE értékét ahogy először is volt. Két dolgot változtattam egyszerre és rá akarok jönni mi volt a hiba. Ha nem kellene állítgatni a WE-t az nagyon megkönnyítené egy TTL IC szkóp esetében a munkát.
Érdekességnek felteszek ide egy képet. A négyszögjel túllövései érdekesek. A TL071 -re gyanakszom. Szerintem nem bírja a tempót.
hát igen, az nem egy nagyon precíz, gyors op-amp..
Akkor ezekszerint most megszűnt az eddigi hiba 256-onként?
Igen megszünt a hiba. Teljesen egyértelmű mostmár hogy a WE-t nem lehet állandóan LOW-ban hagyni íráskor. A hibát ez okozta. Most WE-vel vezérelt memóriába írást használom. Köszi a segítséget.
Találtam neked valamit.
![]()
Haladtam a szkóppal. Egy időben nem ment a /WE vezérlés és az AD konverternek az órajel mivel a nyákon hajszálvékony gyártási hiba maradt...
![]() . Jelenleg még alapórajelen, 1Khz-en járatom. Az AD konvertertől bejövő adattal egy kis hiba van. (lásd melléklet...Az ábra egy nagyon torz színusz görbe, mivel eléggé retek minőségű wien hidas generátort hoztam össze....) Az a gondja hogy a normális mért érték mellett "szöszöl" vagyis rosz helyrte is rak pontot. Ezek a pontok 8 pixel távlságban vannak függőlegesen. Még nem tudom mi a baj. Továbbá ha a függőleges poziciót teljesen le veszem, akkor is csak a képernyő közepéig megy a vonal. ráadásul ilyenkor az AD konverternek 0-kat kéne küldözgetnie. Szerintem mondjuk a 2 hibajelenség összefügg egymással. Ezenkivűl a "gyógyított" bascomból elegem van, mivel olyan szoftveres hibát csinál, hogy minden 23. mérés után újraindul a szkóp, mintha reseteltek volna. Most a WinAVR-t tanulgatom, megpróbálok összehozni benne egy T6963C vezérlést, hogy ki tudjam próbálni más fejlesztőkörnyezettel. Esetleg nem tud valaki erre kész projectet valahonnan? ![]()
Köszi, majd megnézem. Amúgy avrfreaks-en találtam T6963C-s include-ot.
Még nagyon kezdő vagyok c-ben ![]() ![]() ![]() Sikerült már összehoznom ma ledes villogót, meg futófényt ![]()
Sziasztok !
"Továbbá ha a függőleges poziciót teljesen le veszem, akkor is csak a képernyő közepéig megy a vonal. ráadásul ilyenkor az AD konverternek 0-kat kéne küldözgetnie." Ezt a mondatodat nem értem. Próbálj meg szinuszgenerátor helyett először valami más hangforrást. Lehet hogy csak a generátor zaja amit látsz. Én meg most a DFT és FFT elméletével küszködök. Mindenhol csak hiányos elméleteket találok, sehol egy számpélda. Az egész hétvégém ráment a keresgélésre.
Fáradt voltam, nem tudtam értelmesen fogalmazni...
![]() ![]() Úgy értettem, hogyha nem kötök rá semmilyen bemeneti jelet, és a pozició szabályzó potival beállitok az AD konverter bemenetén +2V-ot akkor nem a 0.sorba rajzol az LCDre , hanem valahol a képernyő közepére. Pedig ilyenkor 0-kat kéne küldözgetni az AD konverternek
az a referenciafesztől függ, ha a negativ referencia a gnd és 5V a +fesz akkor, 2V-nál 102-őt küld ki a adc (ha 8bites) értelemszerűen. ha a 2V van 0-ra lőve akkor ki kéne vonni a beérkező adatokból a 102-t..
![]()
A referencia fesz a 2.5V. Az AD konverter 2-től 3 V-ig fogad feszültséget. a 2V az 0-t jelent, a 3V az 255-öt
Úgy nézem hogy a 6.bit az egyfolytában H nálam (Leddel végignézve). Emiatt van egyfolytában a képernyő közepén a vonal (128 magas a kijelző és egyfolytában 64-et ad az AD konverter). Akkor sajnos rendelni kell mégegyet,
![]() ![]() ![]()
nem lehet valami érintkezési hiba, zárlat a nyákon stb?
Azt hogy nézted meg hogy a 6. bit mindig magas? Nem lehet hogy más áramköri elem befolyásolja? Én ilyenkor át szoktam metszeni a nyákot, aztán mérés után befoltozom. Még mielőtt kiforrasztanád az SMD AD IC-det.
![]()
Nemtudtok véletlenül egy jó számpéldát FFT-re. Már a fél internetet végignéztem. Az elméletekből már elegem van.
Periódikus jelre nézve benne van a Kandón is használt analízis jegyzetben illetve a digitális átviteltechnika jegyzetben (1995!) A nem periódikus jelekkel meg szenvedni fogsz, nem kicsit , nagyon
![]() Zoli
http://www.riskglossary.com/link/fast_fourier_transform.htm
meg próbálok még keresni... rengeteg fajta FFT algoritmus létezik, az FFTk az a DFT-nek a spec esetei, amikor tudsz trükközni az algoritmussal, mert tudsz vmi plussz infót a jelről... (mondjuk ez nem egészen így van... de kezdetnek megteszi ![]() |
Bejelentkezés
Hirdetés |