|
Szerző |
Üzenet |
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
MI az RSTDISBL?
|
kedd aug. 01, 2006 9:16 |
|
|
klavi
ezüst tag
Csatlakozott: szomb. máj. 27, 2006 21:39 Hozzászólások: 36
|
gemo írta: Egy elpusztúlt attiny2313 lett az eredmény... Fel lehet ébreszteni az elprogramozott attiny2313-at???
Valószínűleg "external oscillator" üzemmódba kapcsoltad, azaz külső órajelet vár a uC. Próbálj meg külső négyszögjelet (pl. 1MHz) vezetni az órajel bemenetre, és ezalatt konfiguráld "kristáyoszcillátor" üzemmódba.
Ha viszont az RSTDISBL bitet állítottad át, akkor már csak egy práhuzamos programozóval lehet visszaállítani...
|
kedd aug. 01, 2006 8:54 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Majd megnézem az adatlapot, de tílleg vigyázni kell mert ki lehet zárni magadat a chip-ből. És utána már csak valami párhuzamos programozó hozza helyre...
|
kedd aug. 01, 2006 8:22 |
|
|
gemo
vas-tag
Csatlakozott: hétf. júl. 31, 2006 10:13 Hozzászólások: 4
|
Egy elpusztúlt attiny2313 lett az eredmény...
Pony proggal programoztam, előfordulhat hogy ez negáltan kezeli a FUSE-biteket...
Ezt olvastam ki egy működő attiny2313-ból:
1 CKDIV8
0 CKOUT
0 SUT1
1 SUT0
1 CKSEL3
0 CKSEL2
1 CKSEL1
1 CKSEL0
ha ez negált akkor 01 10 0100
Most akkor mit kellene beállítanom a 4MHz külső kvarcomhoz????
Fel lehet ébreszteni az elprogramozott attiny2313-at???
|
kedd aug. 01, 2006 7:19 |
|
|
gemo
vas-tag
Csatlakozott: hétf. júl. 31, 2006 10:13 Hozzászólások: 4
|
Köszi!
Este ki is próbálom, és megírom az eredményt!
Gemo
|
hétf. júl. 31, 2006 10:45 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
winavr-hez nemtom pontosan milyen égetőt adnak, mert én ponyprog-ot használom, cimbi meg az avrdude-t (Linux)
Ez utóbbinál a konfig fájlban kell asszem megadni
hogy FUSE 010000010010110 stb.... (ez csak egy példa volt)
de mintha parancssorból is kiadható lenne.
A winavr saját égetőjélben nem tom hogy kell, nézd meg a doksiban.
Ja és vigyázz, mert valamelyik égetúő a CKSEL biteket (ami neked kell) fordítva (negáltan) jelöli...
|
hétf. júl. 31, 2006 10:41 |
|
|
gemo
vas-tag
Csatlakozott: hétf. júl. 31, 2006 10:13 Hozzászólások: 4
|
WinAVR-t használok, ebben hol lehet a FUSE-biteket macerálni?
|
hétf. júl. 31, 2006 10:35 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Nézd meg a FUSE biteket, hogy nem-e a belső 1MHz-es RC oszcillátoráról jár-e a cucc
|
hétf. júl. 31, 2006 10:30 |
|
|
gemo
vas-tag
Csatlakozott: hétf. júl. 31, 2006 10:13 Hozzászólások: 4
|
Hali!
Attiny2313 programozgatok, eddigi projektjeimnél az időzítések nem voltak túlságosan lényegesek, de most egy rtc-t kellene írnom, aminél a pontosság azért lényeg lenne
A probléma az, hogy hiába 4MHZ kristályt használok úgy tünik mintha csak 1MHz lenne, ami azért elég nagy gáz...
Itt a program részlet ami most jól működik, de a számításaim szerint nem szabadna jól működnie... valaki megmondaná, hogy mit számoltam el????? Vagy a belső órajel kavar be valamit?
#define TICKCOUNT 3700
ISR(TIMER0_OVF_vect)
{
i++;
if (i == TICKCOUNT)
{
ss++;
if (ss == 60)
{
ss = 0;
mm++;
if (mm == 60)
{
mm = 0;
hh++;
if (hh == 24)
hh = 0;
}
}
}
}
void init_clock(void)
{
cli();
TCCR0B |= 1 << CS00;
TIMSK |= (1 << TOIE0);
sei();
return;
}
A válaszokat előre is köszönöm.
Gemo
|
hétf. júl. 31, 2006 10:25 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Köszi!
|
csüt. júl. 13, 2006 22:37 |
|
|
gerry
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 518 Tartózkodási hely: BP.XI
|
Ros-Co. írta: Bocsánat hogy egy valószínűleg elhangzott kérdéssel állok elő:
Szeretnék AT90S2313-ra készült kódot Attiny2313-on futtatni. A kódban semmilyen változtatás nem lehetséges, csak a bináris fájl van meg.
A fuse bitek megfelelő beállításával lehetséges a dolog??? (vissza lehet kapcsolni 2313 módba?)
Ha nem, esetleg disassemblerrel vissza lehetne fejteni a kódot, de ez véleményem szerint meg nem érné meg.
A 90S2313-at már nem gyártják. Gondolom másnak is felmerült a probléma.
Persze kompatibilis a tok, bele lehet égetni.
Amire figyelni kell, ha programozod, hogy a ki kell kapcsolni valami conf. bitet ami a külső orajelet leosztja 8-al asszem CKDIV8(disable). Nem kell visszakapcsolni 2313 modba mert nincs ilyen funkciója. Legalábbis a Pony progban nincs. Bascommal is lehet égetni de csak az 1.11.8-al?
De Róbert a avr.tavir.hu -n segít neked.
üdv
A hozzászólást 1 alkalommal szerkesztették, utoljára gerry pén. júl. 14, 2006 5:53-kor.
|
csüt. júl. 13, 2006 19:53 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Bocsánat hogy egy valószínűleg elhangzott kérdéssel állok elő:
Szeretnék AT90S2313-ra készült kódot Attiny2313-on futtatni. A kódban semmilyen változtatás nem lehetséges, csak a bináris fájl van meg.
A fuse bitek megfelelő beállításával lehetséges a dolog??? (vissza lehet kapcsolni 2313 módba?)
Ha nem, esetleg disassemblerrel vissza lehetne fejteni a kódot, de ez véleményem szerint meg nem érné meg.
A 90S2313-at már nem gyártják. Gondolom másnak is felmerült a probléma.
|
csüt. júl. 13, 2006 16:46 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
albinolynx írta: Közben Watt már tájékoztatott a PIC-es fórumban, hogy ezek mikrokontrollerek és nem PIC-ec. Én meg csak átmásoltam a postom. Guglizok egyet, köszi! A mikrokontroller egy gyűjtőnév a memóriával, perifériákkal, stb. egy chipbe épített processzorokra. Ezen belül van a PIC, AVR, ARM, 8051, stb.
|
csüt. júl. 13, 2006 14:13 |
|
|
albinolynx
arany tag
Csatlakozott: szomb. júl. 01, 2006 18:09 Hozzászólások: 146
|
Magyar oldalon nem találtam, ellenben külföldin ezt:
link
Mi a véleményetek róla?
|
csüt. júl. 13, 2006 14:10 |
|
|
albinolynx
arany tag
Csatlakozott: szomb. júl. 01, 2006 18:09 Hozzászólások: 146
|
klavi írta: albinolynx írta: ... Adott három PIC: AT89C2051, AT89C1051, AT89C4051 ... Ezzel elárultad magad, látszik hogy fogalomzavarban szendvedsz... A Microchip gyárt PIC mikrokontrollereket, az ATMEL pedig (többek között) AVR és 8051 alapú kontrollereket... (Az általad említett uC-k 8051 alapúak) A Google-ba írd be: "AT89C2051 programozó", és már válogathatsz is a jobbnál jobb kapcsolásokban... Üdv: Klavi
Közben Watt már tájékoztatott a PIC-es fórumban, hogy ezek mikrokontrollerek és nem PIC-ec. Én meg csak átmásoltam a postom. Guglizok egyet, köszi!
|
csüt. júl. 13, 2006 13:43 |
|
|
klavi
ezüst tag
Csatlakozott: szomb. máj. 27, 2006 21:39 Hozzászólások: 36
|
albinolynx írta: ... Adott három PIC: AT89C2051, AT89C1051, AT89C4051 ...
Ezzel elárultad magad, látszik hogy fogalomzavarban szendvedsz...
A Microchip gyárt PIC mikrokontrollereket, az ATMEL pedig (többek között) AVR és 8051 alapú kontrollereket...
(Az általad említett uC-k 8051 alapúak)
A Google-ba írd be: "AT89C2051 programozó", és már válogathatsz is a jobbnál jobb kapcsolásokban...
Üdv:
Klavi
|
csüt. júl. 13, 2006 12:26 |
|
|
albinolynx
arany tag
Csatlakozott: szomb. júl. 01, 2006 18:09 Hozzászólások: 146
|
Az előbb rossz topikba küldtem a postot. Egy az egyben átmásolom ide:
Sziasztok!
Bocsánat, hogy csak így egyszerűen bepofátlankodom a topikba! Adott három PIC: AT89C2051, AT89C1051, AT89C4051
Van egy .ASM, .BIN, .HEX file-om. Az egyik PIC-be amelyiket sikerül beszerezni, kellene beleégetnem a programot.
Szeretném a segítségeteket kérni egy olyan programozó kiválasztásában, ami egyszerű, könnyen utánépíthető (com portra). Illetve ajánljatok windowsos programot, amivel végre tudom hajtani a beégetést.
Sajnálom, hogy csak ilyen felületesen érek rá foglalkozni a témával! Nagyon kevés a szabadidőm.
|
csüt. júl. 13, 2006 11:31 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
up
|
csüt. júl. 13, 2006 10:29 |
|
|
MotoHacker
gyémánt tag
Csatlakozott: pén. jan. 28, 2005 20:39 Hozzászólások: 3683 Tartózkodási hely: Bp
|
Keresni kell vadul.Cben progizható kontrollerről van szó,és léteznie kell igen primitív ascii C megvalósításnak.(pl a mikrokontrolleren futó mini linuxokban..csakhát aki egy kernelben eligazodik.. )
De a serial-tcp,mint olyan,alapból egyáltalán nem olyan bonyolult,szinte egy billentyűzet illesztése komolyabb.
Pl egyáltalán nincs semmiféle "kézfogás" vagy időzítés a nagy hibatűrés miatt,nincs "időkorlát",és nem köteles a net-en lógó végpont a csomagokat "átvenni" vagy valamiképp mindet nyugtázni.Ami elvész,az elveszett(fogadó nem reagál rá),ismételgetik,vagy nem,előbb utóbb hibára fut a tuloldali gép,tehát nem kell szenvedni vele,hogy mi is tudjunk TCP "server" lenni(lehessen a portjainkra kapcsolódni),elég ha csak hostként tudunk a legegyszerűbb csomagokra reagálni egyetlen TCP kapcsolat erejéig,egyetlen tuloldali géppel,egyetlen porton.
|
vas. jún. 04, 2006 20:17 |
|
|
solder123
ezüst tag
Csatlakozott: kedd márc. 29, 2005 19:48 Hozzászólások: 73
|
gprs net
Hello!
Én is akartam ilyet csinálni, s töb megoldás is van a könnyűtől a nagyon nehézig
1. megoldás: lehet venni belső IP stack-kel rendelkező gprs modemet kb 25-30 ezer forintért
2. Rendelsz egy 4000 Forintos IC-t ami megoldja az IP stacket, ilyet akartam én is rendelni de valami arab országból jött volna, s 8 ezer forint szállítási költséggel a nevére nem emlékszem de ha gondolod megkeresem...
3. Te magad leprogramozod a PPP protokollt, hisz ezzel mennek a gprs netek...
solder
|
szomb. jún. 03, 2006 21:38 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
ATmel Net
Én ATMega32-vel dolgoztam eddig.
Szerintetek hogyan lehetne megoldani, hogy mobil telefon hálóztaton keresztül az interneten kommunikáljon egy atmel.
Gondolom valami gprs modul kellene. A pannonnak van olyan kártyája, ami nem előfizetéses és csak az adatforgalomért kell fizetni. Nos egy szerveren megjelenő file-t kellene olvasnia a kontrollernek, amiben paracsokat adok és azt végrehajtja. Az eredményeket pedig egy másik file-ba felteszi a szerverre. Tehát egyszerű ftp-t kellene megoldania.
Hogy leghetne megoldani?
|
pén. jún. 02, 2006 13:53 |
|
|
Pepita
vas-tag
Csatlakozott: szomb. ápr. 15, 2006 15:23 Hozzászólások: 3
|
Nagyon köszönöm,már működik is a Tiny.
Üdv:Pepita
|
hétf. máj. 29, 2006 19:40 |
|
|
TavIR
vas-tag
Csatlakozott: hétf. dec. 19, 2005 14:20 Hozzászólások: 9 Tartózkodási hely: Budapest
|
Tiny és a 90S közt a következőt kell beállítani:
DivClock/8 - Disable
Órajelet kell még kiválasztani.
Felülről a Tiny kompatibilis a 90S2313-l
Bascom AVR programozási kézikönyv, minták:
http://avr.tavir.hu
|
szomb. máj. 27, 2006 7:16 |
|
|
Pepita
vas-tag
Csatlakozott: szomb. ápr. 15, 2006 15:23 Hozzászólások: 3
|
Sziasztok!
90s2313 helyett szeretnék ATTINY2313-at használni.Tudna valaki segíteni hogyan kell beálítani a Ponyprogot,hogy működjön a dolog?
Kezdő vagyok,érthetően kéne,pl melyik bitet mire állítsam,lock1,lock2,ckout,cksel stb.
Előre is köszönöm.
Üdv:Pepita
|
vas. máj. 07, 2006 7:08 |
|
|
snapscan
platina tag
Csatlakozott: szomb. jan. 01, 2005 11:21 Hozzászólások: 857
|
Sztem építs sima STK200-as programozót, az mindennel hajlandó együttműködni.
szerk: szoftverekre gondoltam
|
csüt. feb. 09, 2006 11:48 |
|
|
Sonar-X
arany tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 194
|
Üdv!
Tudna nekem segíteni vki. Egy avr programozót szeretnék építeni
nézegettem a lancos oldalát egész jó, csak nem igazán értem, hogy mi a különbség az AVR ISP with SI-Prog és az STK200/300 között?
csupán ennyi?:
You can connect directly to the target system (ISP) through the 10 pin connector, alternatively you can connect a PonyProg adapter card for AVR, AT89S, SPI eeproms, microwire eeproms and feed external power to the device.
Esetleg vmi mást?
AVR ekbe tájékozatlan vagyok. (egyenlőre)
üdv sonar
|
csüt. feb. 09, 2006 11:20 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
Idézet: Az első megszakításnál hogyan mondjam meg, hogy ne növelje a változót? Erre van valamilyen flag?
Persze, hogy nincs, de Te majd csinálsz egyet nem? Amúgy jó érzékeled a dolgot. Kicsit trükkös, mert lehet, hogy egy nem is elég, de majd kialakul..
|
szer. feb. 01, 2006 17:58 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Hopsza, tényleg felcseréltem.... Az első megszakításnál hogyan mondjam meg, hogy ne növelje a változót? Erre van valamilyen flag?
No lassan ki is fogom prószálni a dolgot...
|
szer. feb. 01, 2006 16:05 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
A rajz érthető, de lehet, hogy valamit elnéztél, és egy lehetőséget pedig nem vizsgáltál.
Amit elnéztél, az a második képletedben a régi és az új számlálóérték felcserélése. Szerintem a régit kell kivonni:
mért_érték = Tszáml - t(régi) + T(új).
A t(régi) értékét(vagy akár a [Tszáml - T(régi)] értéket) akkor kell letárolni, amikor a Timer megszakítást okoz.
Első megszakításkor még nem kell növelni a megszakításokat számláló változó értékét, csak a másodiktól.
És akkor itt van az az előforduló lehetőség amit nem említettél, hogy a mérendő impulzus első fele a t3 kor érkezik, a következő imp. pedig a t6-kor, ami nincs a rajzodon és a második timer túlcsordulás után jönne.
Nem kell azt vizsgálni, hogy a t(régi) kisebb, vagy nagyobb a t(új)-hoz képest, mert ez nem jó megközelítés, mert akár lehet nagyobb is. Csak azt kell vizsgálni a 3 különböző lehetőségnél, hogy volt e megszakítás.
Ha nem volt: mért_érték = t(új)- t(régi)
Ha volt : mért_érték = Tszáml * Timer_Int + (Tszáml - t(régi)) + T(új)
Ez azért elegendő, mert ha csak egy megszakítás volt, akkor a Timer_int = 0 (ez számolja az egynél több megszakításokat), és ekkor az első szorzás eredménye is 0, ami nem változtatja az eredményt és a második képleted marad(az is javítva)
|
szer. feb. 01, 2006 15:54 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Köszi! Már jártam ott, de akkor még csak pár mondat volt a leírás. A kütyü tílleg egy kicsit túlegyszerűsít, de legalább hatékonyan használja a proccot...
Én is vmi ilyesmit szeretnék.
Egy kicsit rajzoltam a számláló kiolvasásával kapcsolatban:
Remélem érthető a rajz. Jó az elgondolásom? Amikor akkor jönnek az impulzusaim amikor a számláló inkrementál, akkor csak kivonom a régi értékből az újat. Ha észreveszem, hogy az új érték kisebb mint a régi, akkor a számláló maximális értékéből kivonom az újat, és ahhoz adom a régit.
|
szer. feb. 01, 2006 13:18 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
Ros-Co
Megkerestem neked a motor vezérlő leírását a Lada oldalon. Linkelni nem lehet, így éred el:
http://zsiguli.hu/
Ott: Cikkek/Gyújtásrendszerek
ez alatt: Gyújtás-elektronikák, teljes vezérlések/Motor Vezérlő Rendszer Működési leirás a gt.racing Motor Vezérlő rendszerhez
Ez egy igen nyers megoldás, de az elméleti megközelítésben sok hasznos dolgot lehet olvasni és a program is hozzáférhető!
|
szer. feb. 01, 2006 6:34 |
|
|
MotoHacker
gyémánt tag
Csatlakozott: pén. jan. 28, 2005 20:39 Hozzászólások: 3683 Tartózkodási hely: Bp
|
RosCo:Mielőtt teljesen szétoffoljuk a topicot
Ide less,kedvcsináló,hogy néz ki egy ilyen: http://maskmanoka.tar.hu/
És a cucc: http://www.mskar.org/DME/Motronic911.zip
|
szer. feb. 01, 2006 1:31 |
|
|
MotoHacker
gyémánt tag
Csatlakozott: pén. jan. 28, 2005 20:39 Hozzászólások: 3683 Tartózkodási hely: Bp
|
Ott sem vesznek fel ihajj mennyiséget pedig(de azt jó helyen)..megpróbálom előásni neked a file-kat.Mivel ezek töréspontok,köztük is van "élet",adott meredekséggel növekszik,csökken,vagy változatlan marad a gyújtás.
A mechanikus ketyerének ugye pont 1 vagy 2 "töréspontja" van,a vákuum meg egy rosszul közelítő görbe,valami csúnya parabolaszerű izé.
Mégis működnek a mechanikus előgyújtásszabályzók(úgy ahogy).A régi zsigákon még vákuum(terhelésfigyelés) sincs!,nem csoda,hogy zabál mint az állat.
Itt inkább a motorra optimalizálni az adatokat lesz kemény.
A "3d" muszáj,mert két paraméter van,a terhelés figyelembevétele nélkül pont annyit ér az egész,mint a régi zsiga.
De kár túlgondolni,hogy "juj 3d",simán 2 független számítás,ami megadja a végső eredményt,ezért hívják ezt "jellegmezőnek" ,mert szó szerint egy mező,egy 2 dimenziós tömb.A régi elektronikákban egy 128K epromban elfér az egész szóval nem lehet kismillió pont,talán még 64sem.
Mert ugye ez már 64*64 adat,és nem csak egy jellegmező van,hanem minimum 2,egy a gyújtásnak,egy a befecskendezés alapidejének.
|
kedd jan. 31, 2006 23:56 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Hm. Az igaz, hogy a mechanikus jószág eléggé lexarja hogy milyen vezérlést adsz neki, de azért az nagyon durva lenne hogy az (500)..10000-es
fordulatszám-tartományt cssk 64 részre osztanám. Ha több pont van, akkor meg szerkeszteni elég borzasztó...
A 3D görbét még nehezebb kézben tartani, mármit ábrázolás és real-time módosítás ügyében, ezért én minimális pontszámra törekednék, közte interpolációval (persze ezt sem szabad nagyon leegyszerűsíteni)
Turbósnál vigyázni kell ám nagy fordulaton is, mert tönkremehet a motor ha rossz helyen kapja a gyújtást. Persze ez akkor áll elő, ha a motor nagyon ki van hegyezve. A felhasználást ismerve nagyon ki lesz hegyezve.
A V12 szép jószág lehet, mondjuk ez annyira erős, hogy alapból (elektronika nélkül is) röhögve viszi az autót, és sosem fog tönkremenni.
Ha esetleg nem titkosak a táblázatok, szívesen tanulnék belőle, főleg hogy hogyan érdemes ábrázolni, és milyen felbontásban kell tárolni az értékeket. Úgy szeretném, hogy a legtöbb autóhoz felhasználható legyen. (az analóg modul cserélhető lesz) illetve a rengeteg eltérő jeladó-fogszám miatt vszínű hogy programozható előosztót is be ell rakni.
Az Eprom nem gond, vagy a belső EEPROM-ot fogom használni, vagy pedig később egy külső SPI buszos flash-t. Ez már ki is van próbálva.
|
kedd jan. 31, 2006 23:35 |
|
|
MotoHacker
gyémánt tag
Csatlakozott: pén. jan. 28, 2005 20:39 Hozzászólások: 3683 Tartózkodási hely: Bp
|
Gyakorlatilag szinte nincs szükség interpolációra,de két érték közt egy harmadikat egyszerű átlaggal képeznék.(A+B)/2,ahol az osztás egy jobbratolás.Ha negyedelek,akkor ugye a két eredeti érték,meg a köztes,azok közt képzek további 2értéket,már van 3köztes értékem.
A motorok alacsony fordulaton nagy nyomatékon kritikusak,amikor pörög "mint az állat",keveset számít,hogy 4500 vagy 4510 a fordulatszám.
Tehát inkább nem lineárisan kellene az értékeket elosztani,persze ez sem egyszerű és nagyban függ a motortól. (én a V12-t extrém esetben pörgetem 2500-3000 felett nyilván,99%ban 2000 alatt üzemel).
A táblázat viszont 2dimenziós,vákuum és röppsúly,tehát terhelés és fordulat!!
Vannak ilyen táblázataim még az ősidőből,de nagyobb motorokra csak.Van valahol egy dosos pascal progi is,ami ezeket a "domborzatokat" 3D grafikonra rajzolja.
Gyári vezérlések sima Epromban tartják az értékeket,újabban eepromban,egy 64k eeprom is valami komoly pénz..kuka alján fexik:)
Annyit még lehet,hogy az értéket primitíven tömöríteni,mint az adpcm,tehát egymás utáni értékek diferenciáját nézni.A fordulat mechanikai okokból nem változhat ms-ek alatt,mindig sorban kell az értékeket olvasni amúgyis.
|
kedd jan. 31, 2006 21:01 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Bocs, igazad van! A zárásszög nem egy fix idő, hanem szög érték... És ráadásul egy adott fordulat felett meg kell növelni, hogy a trafó elegendően fel tudjon mágneseződni.
Köszönöm hogy ilyen sokat segítetek, talán lesz ebből valami... Egy ős-példány még írtam régebben, pascal alatt, az az impulzusok frekijét már tudta mérni, és késleltetni is. De itt muszáj a timereket használni, nincs akkora nyers erő mint pl. egy 386-osban
A gyújtáshoz tartozik egy táblázat. Első körben egy 64*8 bitesre gondoltam. Tehát az 500...10000-es fordulattartományt ennyi részre osztanám (nem tudom elég-e) és a köztes részeket lineáris interpolációval számolja.
A táblázatot célszerűen az EEPROM-ban akarom letárolni.
A lineáris interpolációra egy baráto ajánlott egy jó algoritmust, ami megkerüli az osztás használatát...
|
kedd jan. 31, 2006 19:16 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
Idézet: Lehet hogy nem volt teljesen érthető, Ha nem, akkor sem benned van a hiba! A zárásszög kérdést nem látom át teljesen, de valamit sejtek. Egyébként könnyebb vezérelni, mint mérni, ezt már biztosan látom... Idézet: Viszont a kimenet megint problémás, mert egy nullponthoz (nevezzük felső holtpontnak -ez persze nem igaz-) képest kellene késleltetni a kimenő impulzust. Erre egy másik 16 bites timert gondoltam felhasználni a célra. Az ATMEGA128-nak 2 db 8 bites és 2 db 16 bites timer-je van, ez jó lesz sztem. Persze ez nagyobb proccot feltételez, de ez abszolút nem gond, van belőle jópár. Ez világos. Nem kell ám ide olyan nagy erő. Még egy 16F-es is elvinné. Láttam teljes megoldást a Lada baráti kör oldalon, ami 16F-el lett megépítve és allítólag működik. Az vákumot, injectort, gyújtást, lambdát stb. is vezérel... Nem is hinné az ember, mikre képesek ezek az IC-k! Még én is sokszor meglepődöm(mint jelenlegi projectemben is), hogy micsoda mennyiségű számítást tudnak gyakorlatilag egyidőben végrehajtani. Idézet: A késleletetést úgy gondoltam megoldani, hogy a számláló teker felfelé, és mindig nullázom, amikor bejön az impulzus, és az "output compare" regiszter pedig megkapja a késleltetéshez szükséges értéket. Szerintem ez is okés.. Idézet: Az a bajom, hogy a gyújtáshoz tartozik egy zárásszög is, tehát az lenne a jobb, ha egy nagyjából fix szélességű impulzust lehetne időben ide-oda tologatni, ez viszont két komparálási értéket feltételez.
No ez az amit nem értek teljesen, mert a zárásszög az egy arány. A teljes periódus idő viszont egyre csökken a fordulattal.
|
kedd jan. 31, 2006 16:48 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Igen, pont azért tetszik, mert nem tudom, hogy még mit fog csinálni a procc, és a mérendő jel pontossága alapvetően fontos, különben minek csinálnám a gyújtásvezérlőt. Végül is hasonlót szeretnék,a mi te csináltál, csak te méred az impulzusokat, és egyéb paramétereket, emellett nekem még a kimeneten időzíteni is kell.
Viszont a kimenet megint problémás, mert egy nullponthoz (nevezzük felső holtpontnak -ez persze nem igaz-) képest kellene késleltetni a kimenő impulzust. Erre egy másik 16 bites timert gondoltam felhasználni a célra. Az ATMEGA128-nak 2 db 8 bites és 2 db 16 bites timer-je van, ez jó lesz sztem. Persze ez nagyobb proccot feltételez, de ez abszolút nem gond, van belőle jópár.
A késleletetést úgy gondoltam megoldani, hogy a számláló teker felfelé, és mindig nullázom, amikor bejön az impulzus, és az "output compare" regiszter pedig megkapja a késleltetéshez szükséges értéket.
Az a bajom, hogy a gyújtáshoz tartozik egy zárásszög is, tehát az lenne a jobb, ha egy nagyjából fix szélességű impulzust lehetne időben ide-oda tologatni, ez viszont két komparálási értéket feltételez. Ezt úgy gondoltam átrhidalni, hogy amikor megtörtént az első komparálás, hozzáadok még egy fix értéket a regiszter értékéhez, így újra meg tud hívódni az ocr megszakítás.
Lehet hogy nem volt teljesen érthető, de én még csak erősen ismerkedem az uC-jellegű programozással...
|
kedd jan. 31, 2006 13:12 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
Idézet: Úgy nézem van ICP nevű bemenete az AVR-nek. (input capture) Igen ez az lesz. Idézet: A 65536-tal való szorzás gondolom megoldható eltolással, ami jóval eccerűbb... Sőt, mivel kerek bináris érték, ezért csak egy bájtba bele kell tenni a *Timer megszakításban számlált értéket és U bájtnak értelmezni, majd hozzácsapni alulra H-t és a L-t, ami a mérésből adódik és kész az érték 3 bájton. Gyakorlatilag nem végeztünk matematikai műveletet. Persze a H és L bájtokat ki kell előtte számolni, ami vagy összeadásból, vagy kivonásból fog születni(ez a megszakítások és a mérendő impulzusok időbeli elhelyezkedésétől fog függni) Idézet: Jó az ötlet, én nulláztam volna.
Először én is ezt gondoltam jónak, de amikor más megszakítás lekezelése közben jött egy mérendő impulzus, akkor késtem a nullázással, ami hibás mérést okozott attól függően, hogy mennyire volt leterhelve a megszkítás kiszolgálással a PIC. Persze ennek is van megoldása, mert nem nullázni kell, hanem hozzáadni. De ekkor is lehetnek csúszások és egy csomót kell kalkulálni, hogy a hozzáadás közben, ill. az addig vezető programlépések közben mennyit számlált volna a Timer. Szóval ez felejtős. A mostani megoldáskor a megszakításkor harveresen tárolódik a Timer értéke, amit le kell tárolni és a következő értékhez képest számolni vele. Ekkor mindegy, hogy mikor kezeljük le a megszakítást, csak egy a lényeg, hogy a következő megszakítás előtt. Ez persze majdnem mindig teljesül, mert ha nem akkor azt a jelet nem lehet megmérni, vagy másnak a kárára lehet megmérni.
|
kedd jan. 31, 2006 11:54 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Hmm. Jó az ötlet, én nulláztam volna. De így valószínű gyorsabb. Úgy nézem van ICP nevű bemenete az AVR-nek. (input capture) A 65536-tal való szorzás gondolom megoldható eltolással, ami jóval eccerűbb...
|
kedd jan. 31, 2006 11:29 |
|
|
.watt
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3333 Tartózkodási hely: Új nick-em watt (pont nélkül)
|
Idézet: Ehhez szükségeltetik első körben egy kb. 10...350 Hz környéki jel pontos frekvenciájának ill/vagy periódusidejének mérése. Arra gondoltam, hogy a 16 bites számlálót használom. Az impulzus fel vagy lefutó élére megszakításból megállítom a számlálót, kiolvasom, majd nullázom, és így tovább.
Az a baj, hogy elég nagy a pontosságbeli különbség az alsó és a felső freki között, mivel Van erre valami megoldás? Arra gondoltam hogy a számláló előosztóját állítgatom. Jól gondoltam?
Nem pontosan értem cd334 elképzelését, de ez nem jelenti azt, hogy nem jó, ill. azt, hogy én most nem ugyanazt írom le.
Ugyan én PIC-ben oldottam meg több impulzus mérését, de az elv ugyanaz.
A jelet formázni-illeszteni kell és ha létezik a PIC-hez hasonló CCPx bemenete az ATM-nek, akkor arra kell vinni. Ez megszakításkor a hozzá rendelt számláló tartalmát beletölti a CCPx regisztereibe, ezért pontos.
A CCPx-hez rendelt Timer bemeneti frekvenciáját úgy kell meghatározni, hogy a megmérendő legkisebb időt is megfelelő felbontással tudja mérni. Ezt a felontást, azaz pontosságot mi határozzuk meg.
Ahogy írtad, ez olyan gondot vet fel, hogy hasszabb idők esetén a Timer túlcsordul, akár többször is. Erre a megoldás az, hogy a Timer is okozhat megszakítást túlcsorduláskor, amikor is egy számlálót növelünk. Kiértékelésnél(CCPx megszakításkor) ezzel a számlált értékkel szorzunk(Timer szélességével, 16bit esetén 65536-al), majd hozzáadjuk a bemért maradékot.
De hogy ne okozzon mérési hibát a megszakítás lekezelés késlekedése, a Timert soha nem kell lenullázni, hanem a különbségét kell venni az előző és a most mért Timer érték között. Itt bejön, hogy mi van akkor, ha éppen a túlcsordulás előtt és a túlcsordulás után jön a megszakító jel, de ezt már meghagyom nektek..
|
kedd jan. 31, 2006 9:36 |
|
|
cd334
ezüst tag
Csatlakozott: hétf. nov. 14, 2005 11:35 Hozzászólások: 36 Tartózkodási hely: Budapest
|
Ros-Co. írta: Az Atmel oldaláról letölthető a FLIP nevű égető szoftver. Mit tudni erről? Ha annyira "flexibilis" ahogy a neve mutatja, miért csak a 8051 alapú kontrollereket tudja? Állítólag ezzel lehet égetni az AT89C51SND (MP3 dekóderes) kontrollert... (remélem jól írtam a nevét, de úgy is tudjátok miről van szó.
Sajnos sem a FLIP-et sem a AT89C51SND-t nem ismerem, így érdemben nem tudok válaszolni rá. Ros-Co.1 írta: cd334:
Szeretnék atmega 8 vagy 16-os kontrollerrel gyújtást vezérelni.
Ehhez szükségeltetik első körben egy kb. 10...350 Hz környéki jel pontos frekvenciájának ill/vagy periódusidejének mérése. Arra gondoltam, hogy a 16 bites számlálót használom. Az impulzus fel vagy lefutó élére megszakításból megállítom a számlálót, kiolvasom, majd nullázom, és így tovább.
Az a baj, hogy elég nagy a pontosságbeli különbség az alsó és a felső freki között, mivel Van erre valami megoldás? Arra gondoltam hogy a számláló előosztóját állítgatom. Jól gondoltam?
Hány mexakítást lehet egyszerre használni? Mert valószínűleg más folyamatokat is időzíteni kell majd.
Jó az ötlet.
Én építenék egy kis smitt-triggert és a felfutó élek közti időt számolnám. Ugye a számlálók proci órajelével vagy bizonyos leosztott órajelről járathatóak. Járathatod nagy órejelről, de akkor számolnod kell, hogy hányszor futott körbe a számláló. Erre van interrupt. Bármennyi megszakítást használhatsz. Nincs korlátozva.
A számlálónál beizzítanám a tulcsordulást figyelő interruptot, és amikor tulcsordul megnövelnék egy változót. Én az egyik int lábra raknám a smitt-triggerről jövő bemenetet, majd mikor bejön egy int(felfutó vagy lefutó élre), akkor indítanám el a számlálót és a következő interruptnál kiolvasnám a változót és a számlálót és ebből számolnám ki a frekvenciát. A számlálónál az előosztót oda állítod, ahol Neked kényelmes. Én hasonló módszerrel csináltam meg a gitárhangolómat.
Az átlagolás sokat segít, lecsökkenti a mérési hibát.
|
kedd jan. 31, 2006 9:19 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Az átlagolás segít vaklamelyest? Tehát ha több impulzus periódusidejének átlagát számolnám? Talán akkor pontosabb lenne...
|
hétf. jan. 30, 2006 16:20 |
|
|
cd334
ezüst tag
Csatlakozott: hétf. nov. 14, 2005 11:35 Hozzászólások: 36 Tartózkodási hely: Budapest
|
Ros-Co. írta: Az Atmel oldaláról letölthető a FLIP nevű égető szoftver. Mit tudni erről? Ha annyira "flexibilis" ahogy a neve mutatja, miért csak a 8051 alapú kontrollereket tudja? Állítólag ezzel lehet égetni az AT89C51SND (MP3 dekóderes) kontrollert... (remélem jól írtam a nevét, de úgy is tudjátok miről van szó.
Sajnos sem a FLIP-et sem a AT89C51SND-t nem ismerem, így érdemben nem tudok válaszolni rá. Ros-Co.1 írta: cd334:
Szeretnék atmega 8 vagy 16-os kontrollerrel gyújtást vezérelni.
Ehhez szükségeltetik első körben egy kb. 10...350 Hz környéki jel pontos frekvenciájának ill/vagy periódusidejének mérése. Arra gondoltam, hogy a 16 bites számlálót használom. Az impulzus fel vagy lefutó élére megszakításból megállítom a számlálót, kiolvasom, majd nullázom, és így tovább.
Az a baj, hogy elég nagy a pontosságbeli különbség az alsó és a felső freki között, mivel Van erre valami megoldás? Arra gondoltam hogy a számláló előosztóját állítgatom. Jól gondoltam?
Hány mexakítást lehet egyszerre használni? Mert valószínűleg más folyamatokat is időzíteni kell majd.
Én építenék egy kis smitt-triggert és a felfutó élek közti időt számolnám.
Kiegészített válasz később.
A hozzászólást 1 alkalommal szerkesztették, utoljára cd334 kedd jan. 31, 2006 9:22-kor.
|
hétf. jan. 30, 2006 14:43 |
|
|
Ros-Co.
a fórum lelke
Csatlakozott: hétf. nov. 08, 2004 20:03 Hozzászólások: 6046 Tartózkodási hely: Bp.
|
Az Atmel oldaláról letölthető a FLIP nevű égető szoftver. Mit tudni erről? Ha annyira "flexibilis" ahogy a neve mutatja, miért csak a 8051 alapú kontrollereket tudja? Állítólag ezzel lehet égetni az AT89C51SND (MP3 dekóderes) kontrollert... (remélem jól írtam a nevét, de úgy is tudjátok miről van szó.
cd334:
Szeretnék atmega 8 vagy 16-os kontrollerrel gyújtást vezérelni.
Ehhez szükségeltetik első körben egy kb. 10...350 Hz környéki jel pontos frekvenciájának ill/vagy periódusidejének mérése. Arra gondoltam, hogy a 16 bites számlálót használom. Az impulzus fel vagy lefutó élére megszakításból megállítom a számlálót, kiolvasom, majd nullázom, és így tovább.
Az a baj, hogy elég nagy a pontosságbeli különbség az alsó és a felső freki között, mivel Van erre valami megoldás? Arra gondoltam hogy a számláló előosztóját állítgatom. Jól gondoltam?
Hány mexakítást lehet egyszerre használni? Mert valószínűleg más folyamatokat is időzíteni kell majd.
|
pén. jan. 27, 2006 23:22 |
|
|
cd334
ezüst tag
Csatlakozott: hétf. nov. 14, 2005 11:35 Hozzászólások: 36 Tartózkodási hely: Budapest
|
WinAVR
Sziasztok!
Egy kis up!
Megjelent a régen várt WinAVR új verziója!
Letölthető a http://sourceforge.net/projects/winavr oldalról.
Ez a verzió már támogatja vágre az ATMega640, ATMega1280, ATMega1281 AVR-ket, ezen felül rengeteg ujdonság van benne.
Megjelent az AVRStudio 4.12(build 460)-hoz az SP1-es service pack(build 462). Letölthető az http://www.atmel.com/dyn/products/tools ... ol_id=2725 oldalról.
Ha bármi kérdésetek van bátran!
|
pén. jan. 27, 2006 10:27 |
|
|
HA5DZS
arany tag
Csatlakozott: csüt. jún. 10, 2004 14:17 Hozzászólások: 262 Tartózkodási hely: Kispest
|
Hi all!
Hol lehet kapni AT Tiny13-at?
elkészült az első szoftverem, ki kéne próbálni.
Illetve van még egy gond: A BASCOMban ha gyártok egy forráskódot, és le szeretném ellenőrizni, mindig kírja: File not found.
Ezt fordításnál és szimulációnál is kírja. Mi lehet a gond? (mert piszokul nem írja ki miért fáj megint a hasa...)
|
pén. jan. 06, 2006 21:22 |
|
|
Csaka
vas-tag
Csatlakozott: kedd dec. 20, 2005 17:17 Hozzászólások: 7
|
cd334 írta: Idézet: Build started 21.12.2005 at 18:00:55 avr-gcc -mmcu=attiny2313 -Wall -gdwarf-2 -O0 -Wp,-M,-MP,-MT,motor.o,-MF,dep/motor.o.d -c ../motor.c avr-gcc -mmcu=attiny2313 motor.o -o motor.elf C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/lib/crttn2313.o(.init9+0x0): undefined reference to `main' make: *** [motor.elf] Error 1 Build failed with 1 errors and 0 warnings... Akkor most mit próbáltál lefordítani a gcc fordítóval? Ha megvan c-ben is azt jobban szeretném, mert abban sokkal otthonosabban vagyok. De ha ez egy asm program, akkor nem fog műkodni vele. Amit küldtél kigyomláltam visszaküldtem. A az avr.inc legyen a projekt mappában motor.asm-mel együtt, úgy próbáld meg lefordítani.
Köszike!
cd334 sikerült nekem is. nagyon köszönöm nektek a segítséget!
Üdv: Csaba
|
csüt. dec. 22, 2005 11:35 |
|
|
cd334
ezüst tag
Csatlakozott: hétf. nov. 14, 2005 11:35 Hozzászólások: 36 Tartózkodási hely: Budapest
|
Idézet: Build started 21.12.2005 at 18:00:55 avr-gcc -mmcu=attiny2313 -Wall -gdwarf-2 -O0 -Wp,-M,-MP,-MT,motor.o,-MF,dep/motor.o.d -c ../motor.c avr-gcc -mmcu=attiny2313 motor.o -o motor.elf C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/lib/crttn2313.o(.init9+0x0): undefined reference to `main' make: *** [motor.elf] Error 1 Build failed with 1 errors and 0 warnings...
Akkor most mit próbáltál lefordítani a gcc fordítóval? Ha megvan c-ben is azt jobban szeretném, mert abban sokkal otthonosabban vagyok.
De ha ez egy asm program, akkor nem fog műkodni vele.
Amit küldtél kigyomláltam visszaküldtem. A az avr.inc legyen a projekt mappában motor.asm-mel együtt, úgy próbáld meg lefordítani.
|
csüt. dec. 22, 2005 11:15 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Egyben jó.
|
csüt. dec. 22, 2005 10:33 |
|
|
Ki van itt |
Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 12 vendég |
|
Nem nyithatsz témákat ebben a fórumban. Nem válaszolhatsz egy témára ebben a fórumban. Nem szerkesztheted a hozzászólásaidat ebben a fórumban. Nem törölheted a hozzászólásaidat ebben a fórumban.
|
|
|