Hobby CNC Fórum   >>   Fórum   >>   Az AVR és lehetőségei...
Rekalaca kezeli! :))

Ha szeretne hozzászólni, be kell jelentkeznie!
Bejelentkezés >>

Listázás időrendben


 © elektron2014. jún. 03. 21:15 | Válasz | #840 
Igen, utána mehet az 5V-ról PIC-ről is pl. mert akkor működik benne a 3V3 előállító stab IC és megjavul.

 © NyariG2014. jún. 03. 15:55 | Válasz | #839 
Elektron, ha ezt összekötöm és utánna rákötöm a gnd-t és az 5V-t akkor az SD csatlakozásokra (cs,miso,sck) mehet a picröl közvetlenül az 5 volt?

 © LZ2014. máj. 21. 16:42 | Válasz | #838 
Valószínű akkor bugos lesz a bascom.
Sok sok sok éve én is kipróbáltam, de találtam benne pár bugot és inkább hanyagoltam. Akkor tanultam meg a C-t.
Végig kéne nézni az asm fájlt tüzetesen, hogy ki lehessen egy ilyet deríteni...
Egy újrakonfig miatt nem dőlhet meg az biztos. HA lockolod a beállításokat akkor sem fagyhat meg a progi ha újra be akarod állítani, csak nem veszi figyelembe.

 © Csuhás2014. máj. 21. 15:53 | Válasz | #837 
Pedig ez okozza. Mármint ahogy ezt a bascom csinálja. Most úgy kerülöm ki hogy a bootloeder végén nem nullára ugrok hanem a felhasználói program óra configurálása mögé. Így nem kell két fordítási opciót kezelnem. Nem tudom te bascomot használsz-e de mellékelem a kérdéses kódot. Ebből a config osc.. sor fagyasztja le a procit. Lehet hogy más sorrendű beállításra működne, pl bootoláskor belső 32MHZ majd a főprogramban külső kvarc felszorozva. Majd ha lesz időm játszok vele egy kicsit.

$regfile = "xm256a3udef.dat"
$crystal = 44236800 'ext 11,0592 * 4
$hwstack = 240
$swstack = 100
$framesize = 100

$lib "xmega.lib"
Dim Bwd As Byte
Bwd = Getreg(r0)
Config Osc = Enabled , Extosc = Enabled , Range = 9mhz_12mhz , Startup = Xtal_256clk
Osc_pllctrl = &B11_0_00100
Do 'wait until Clock is stable
Loop Until Osc_status.3 = 1
Set Osc_ctrl.4 'PLL enable
Config Sysclock = Pll 'use PLL
.....


 © LZ2014. máj. 21. 14:39 | Válasz | #836 
Pedig az nem okozhatna gondot.
Én szinte minden programoban kétszer konfigurálom az órajel forrásokat. Van, olyan is hogy 32mhz frekit használok a loaderben de a főprogiban már csak 2Mhz ketyeg a proc.

 © Csuhás2014. máj. 21. 10:35 | Válasz | #835 
Megtaláltam a hiba okát:
Mind a programban mind a bootloader programjában a kód az órajel pll beállításával kezdődött. Ez külön külön rendben is volt, de a bootloder végén ha a főprogramba ugrott akkor újra lefutott volna a pll beállítás amit nem viselt el. Feltételes fordítással kiszedtem a loaderes verzióból ezt így működik a dolog. Mindjárt utána nézek hogy miért is nem viseli el a kétszeres óra konfigurálást.

 © LZ2014. máj. 21. 09:54 | Válasz | #834 
Akkor más lesz a baj.
Mivel a bootloader is egy teljes értékű progi, gondolok itt arra, hogy minden HW funkció és a teljes memória területet tudja használni ezért ha ott valamit bekapcsolsz az úgy is marad a 0x0000 címre ugrás után is.
Jártam már úgy, hogy használtam egy timer megszakítást a loaderben de a főprogiban nem. És úgy tűnt nem indul a progi. Pedig indult csak lefagyott, mert nem volt a timer megszakítás címen ugróutasítás és reti.
Szóval kapcsolj ki mindent mielőtt a loaderből kilépsz...

 © Csuhás2014. máj. 21. 09:21 | Válasz | #833 
Nos megnéztem avr studióban a loader kódját, annak rendje módja szerint ott a jmp 0000 ami a felhasználói programra ugrik. Az atmel prociknál külön boot memória tartomány van, külön protected bitekkel, és a fuse bitekkel állítod be hogy a reset a nullás címre vagy a loader terület elejére ugorjon. Ahogy írtam ha ezt a bitet átváltom akkor elindul és jól működik a loader által korábban betöltött program, azaz a loader jól működik, csak valamit nem állít alaphelyzetbe a jmp 0 előtt.
Itt tartok most....

 © nyarfa2014. máj. 21. 05:47 | Válasz | #832 
A bootloder miatt a program kezdő címe nem a 0x0000 lesz, hanem egy magasabb érték a PIC-nél ez 0x800 nálam. De az AVR is így működik. A fordítónak kell lennie egy ASM kimenetének is amiben tisztán és világosan kiolvasható a kezdő cím átdefiniálása és az arra való ugrás. Természetesen ha a fordító nem teszi ezt meg magától, akkor neked kell ezeket az értékeket definiálni az elején a programnak. Ha nincs ASM kimenet, vagy valami olvasható köztes fordítói kimenet ami alapján láthatod az ugrási címet, disassemler segítségével kitudod hámozni a szükséges információkat, bár ez nehezen olvasható és értelmezhető de kihámozható az infó. Ha nem boldogulsz a dologgal, küld el megnézem, hogy tudok-e valamit kihámozni a hex fájlból, bár köztes fájlok jobbak lennének :) a tuti meg a forrás, de ha nem akarod kiadni azt is megértem.

 © elektron2014. máj. 20. 18:19 | Válasz | #831 
Az akkor nem 3V-ot ad ki, hanem ami átmegy rajta véletlenül lehet hogy van olyan kártya amivel működik, de az csak véletlen, hogy neked olyanod van.

 © NyariG2014. máj. 20. 18:05 | Válasz | #830 
Tévedtem, nem javították de nekem eddig tökéletesen működik.

 © NyariG2014. máj. 20. 18:00 | Válasz | #829 
én is most rendeltem ilyen enyémmel nem volt gond, lehet javították már.

 © LZ2014. máj. 20. 12:52 | Válasz | #828 
Pedig nem tudok róla, hogy más kéne mint a bootloader bit átállítása a fusoknál.
Ennyi és onnan kell elugrálni, ahogy írtam. Lehet a fordító bugja.
Esetleg próbáld meg futás közben kideríteni hogy a 0x0000 ugrás után hol fog tartani a program counter.
Vagy ha csinál asm fájlt a fordító akkor ott nézd meg mi van...

 © Csuhás2014. máj. 20. 12:42 | Válasz | #827 
Ugyanezt teszem én is. Viszont mintha valami it vektortábla vagy valami más xmega specifikus dolog miatt nem működik az ami sima atmegán rendben megy.

 © LZ2014. máj. 20. 12:38 | Válasz | #826 
Nem tudom a bascom mit mahinál, de én C-ben a loader progi végén egy ASM utasítással:
#asm("JMP 0x0000");
ugrok a főprogramomra.

 © Csuhás2014. máj. 20. 11:31 | Válasz | #825 
Megkérdezem itt is hátha tudja valaki a választ:
Xmega 256a3u chipbe próbálok bootloadert belefaragni. A bootloader látszólag működik. A loaderbe beszúrt debug printek megjelennek. Az alkalmazást is betölti. Ha verifyvel ellenőrzöm másik programozóval akkor mind a loader mind az alkalmazás jó. A gond az hogy nem indul el az alkalmazás. Ha a fuse biteknél resetre az alkalmazást választom akkor az működik. Ha ugyanott a loadert választom akkor a loader lefut de nem tudja átadni a vezérlést a felhasználói programnak. A bootloader az a bascom 2.0.7.7 samplek között talált minta program: BootLoaderXmega256.bas. Mit ronthatok el?

 © elektron2014. feb. 22. 13:23 | Válasz | #824 
Javítása: pirossal jelzett pontokat összekötni.

3D nyomtatóhoz és egyébhez, ha használni akarjuk, hogy ne hibázzon ...


 © kozo2014. feb. 22. 07:30 | Válasz | #823 
Az SMC "összedobására" inkább ezt az oldalt ajánlom : sufnicnc.com
Az UltraWebes oldalt már rég nem frissítem , hamarosan törlöm is .
Én Attiny2313-20PU mikrokontrollert használtam hozzá .

 © elektron2014. feb. 22. 04:12 | Válasz | #822 
Hoppá, hoppá, megvan a baja, nem is a stab IC a rossz benne, hanem az 1. lába nincs GND-n tervezésileg rossz a panel !!! 1-es lábat a GND-re kell kötni a panel aljára pl. a GND felületre úgy javítható, akkor nem kell semmi hozzá, még jó ...

SD kártya hibás kínai fajták, hiba javítása.

Ez a fajta pl. :



Ha valaki ilyet venne esetleg ez jusson eszébe !!

 © elektron2014. feb. 22. 03:52 | Válasz | #821 
4.2V na a billentyűm szarakodik az is ...

 © elektron2014. feb. 22. 03:50 | Válasz | #820 
Az SD kártyáknak nem 3.3V kell ? Dehogynem, mert eben a kártyában a 3V3 stab IC-ből 4.12V jön ki, még jó hogy nem volt benne a kártya sokáig, úgy néz ki az megúszta egyelőre. Vagy rossz benne a stab IC vagy nem tudom, de mása oka nem lehet. AMS1117 3V3 féle van benne a felirat szerint.

Egy ilyet tehetnék helyette majd.
3V3 LDO stab IC

Vagy mindenesetre holnap még megnézem hogy adok neki 5V-on keresztül pár diódával csökkentem annyira, hogy 3V legyen csak, olvasásra elég áram van úgy neki, csak íráskor lehet nem lenne úgy jó. De egy teszt program olvasta a filet, csak néha hibát írt ki, meg nem mertem tovább próbálni így a 4.12V feszültséggel 3V3 helyett.

 © technixx2014. feb. 18. 02:20 | Válasz | #819 
Digitus

Ez jó fajta, volt cégemnél többet is használtunk, asztali gépen, laptopon ...

 © elektron2014. feb. 18. 02:13 | Válasz | #818 
Na pont ilyet kerestem emlékeztem is, hogy mintha neked is lett volna. Abból kérnék kettőt akkor, ha még van. De ha még majd marad, lehet kell a többi is, csak most egyszerre sok lenne a kiadás. Emailben megbeszéljük, hogy küldöd.

 © Devecz Miklós2014. feb. 17. 21:44 | Válasz | #817 
Nekem van feleslegem, árultam is, de a kutyának sem kellett. (a könyvtáramban megtalálható az eladó dolgok közt)

 © elektron2014. feb. 17. 21:26 | Válasz | #816 
USB-TTL convertert lehet itt kapni valahol, amit nem kínából kell rendelni ? Aminek egyik vége USB a PC-be megy, másik oldalon meg TTL szintű soros porti jel jön-megy FTDI chipes valami.

 © elektron2014. feb. 17. 20:27 | Válasz | #815 
Arduino Mega 2560-hoz SD kártya olvasót hol lehet itt venni vajon az országban van valamelyik boltban ?

 © technixx2014. jan. 25. 20:27 | Válasz | #814 
Az SMC servo vezérlőbe ki milyen AVR-t használ? ATTINY2313 vagy AT90S2313? Vagy egyáltalán van valami különbség köztük?

 © csewe2014. jan. 25. 19:46 | Válasz | #813 
Ment mail.

 © elektron2014. jan. 25. 19:30 | Válasz | #812 
Hogyne tudnám. :)

 © csewe2014. jan. 25. 18:43 | Válasz | #811 
Egy ilyent szeretnénk összedobni Zolibával a kéken.
Ehhez kellene felprogramozni az AVR-t.
Meg tudnád oldani nekünk.

 © elektron2014. jan. 25. 17:49 | Válasz | #810 
Én tudok. :)

 © csewe2014. jan. 25. 17:43 | Válasz | #809 
Tudna valaki ATTYNI 2313 AVR-be programot égetni nekem?

 © metabo2013. nov. 02. 15:07 | Válasz | #808 
occco Mifare RFID ebay 7$ .....
>>>MF522 RFID DOORLOCK<<<<

 © elektron2013. szept. 21. 21:10 | Válasz | #807 
A végfokom más, rájöttem mert nekem nem olyan a hidam, hanem eggyik irány 0-1 kimenet kell másik irány meg 1-0 kimenet de egyszerre nem lehet 1-1 ... na akkor programot kell kicsit módosítanom, annyi ... de legalább rájöttem, tegnap óta nem akart működni, akkor kezdtem hozzá beüzemelni, mert ez a panel féle még sose működött eddig, de fog már látom.

 © elektron2013. szept. 21. 20:53 | Válasz | #806 
Na, az is ugyanazt csinálja, akkor nem a procival van a gond, de akkor most már nem értem, hogy működik ... amúgy egyáltalán.

 © elektron2013. szept. 21. 20:40 | Válasz | #805 
Megnézem a tuti jó procival csak kábeleket kell még csinálni, mert pont semmi se jó ahhoz meg ami van. Mert ha azon egyik lábon jön ki csak PWM egy időben, akkor nem stimmel valami amúgy se stimmel ha nem nézem meg amazt is, mert nyilván nem kéne egymásra nyitni a hidat. Még füst szerencsére nem jött ki belőle.

 © elektron2013. szept. 21. 20:32 | Válasz | #804 
Most próbálok nézelődni, amíg a kocsmába el nem megyek még addig. :) Kösz. Elvileg ránézésre nem látok olyasmit, ami miatt nem kéne ezzel mennie, elég érdekes.

 © isvarga2013. szept. 21. 20:22 | Válasz | #803 
emigrációt nézted már?
emigráció

 © elektron2013. szept. 21. 20:02 | Válasz | #802 
Igencsak beleszaladtam egy szívásba.

SMC3A szervó vezérlővel, Attiny2313A processzort tettem bele, Attiny2313 helyett, lehet nem mindegy.

Olyat csinál, hogy a két PWM kimenetén egyszerre jelenik meg PWM jel, holott csak egyszerre csak az egyiken kéne neki, megnéztem nincs összeforrasztva a két láb, az encoder bemenetem véletlen összeforrt, de azt már kijavítottam.

És a két PWM kimenet egymással szimmetrikusan megy, ha az egyik kitöltési tényező nő, a másik csökken.

A P arényosséági tagot csak beírva, az encodert, ahogy forgatom, lehet a kitöltési tényezőt állítani kézzel tesztként pl.

Lehet a proci az oka ? Van egy másik panelem amin tiny2313 van, ami jól megy elvileg, csak az most nincs összedugva még az külön meló, most nem akartam azt is kínozni, de erre az okra tippelek, lehet csak újra kéne fordítani 2313A procira a forrást ?

 © kanegér2013. máj. 10. 21:20 | Válasz | #801 
men fel Cseh Robert oldalára, Ő a magyarországi guruja. Ott mindent megtudsz, kezdetnek jó :) Én régóta használom. :)

www.tavir.hu

vagy a hivatalos: www.arduino.cc

 © elektron2013. máj. 10. 19:58 | Válasz | #800 
Kipróbáltam, működik persze ki mit szeretne csinálni, attól függ jó e neki valamire.

C szerű programot lehet benne írni van csomó kész librarije stb. persze mint mindent meg kell tanulni mi micsoda hogy tudja használni az ember.

 © ebalint2013. máj. 10. 19:02 | Válasz | #799 
Véletlenül botlottam bele, eddig nem hallottam róla.

Első benyomásra használható dolognak tűnik.
Hobbi célra mindenképpen.
Te használtad már esetleg?

 © elektron2013. máj. 09. 19:50 | Válasz | #798 
Mit akarsz vele csinálni ?

 © ebalint2013. máj. 09. 19:39 | Válasz | #797 
Arduino Processing -et használ valaki?

Ha igen, milyen sikerrel?


 © mambo2013. márc. 29. 18:07 | Válasz | #796 
van kinaiaknál egy arduino szet ahoz van sample kodok és ez az 12$ rc552 modul is bene van ahoz is van sample code bene !
write sample :
**********************************************
uchar moneyConsume = 18 ; //消费18元
uchar moneyAdd = 10 ; //充值10元
//扇区A密码,16个扇区,每个扇区密码6Byte
uchar sectorKeyA[16][16] = {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
//{0x19, 0x84, 0x07, 0x15, 0x76, 0x14},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
};
uchar sectorNewKeyA[16][16] = {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0x19,0x84,0x07,0x15,0x76,0x14},
//you can set another ket , such as " 0x19, 0x84, 0x07, 0x15, 0x76, 0x14 "
//{0x19, 0x84, 0x07, 0x15, 0x76, 0x14, 0xff,0x07,0x80,0x69, 0x19,0x84,0x07,0x15,0x76,0x14},
// but when loop, please set the sectorKeyA, the same key, so that RFID module can read the card
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0x19,0x33,0x07,0x15,0x34,0x14},
};
***********************************************

 © h2o2013. márc. 29. 15:42 | Válasz | #795 
Honnan sikerült használható kódot szerezned?
És honnan tudod, hogy használható,ha még nincs meg az olvasó?

 © mambo2013. márc. 29. 12:44 | Válasz | #794 
Az nemlát a proci mélyére rola látot videokbol megitélve.... de kiprobálom!
Tényleg a JTAGICE csak....
mért az arduino mert mindene nyitot ami nagyon jo van publikus foráskod minden projekthez amiböl sokat lehet tanulni vagy csak átkel szabni saját igényre!
pic és avr projekteknél örzik a foráskodokat ugy 90% ba az zsák utca ha modositani akarsz egy egy jo projektet....

 © mambo2013. márc. 29. 12:39 | Válasz | #793 
nekem most arduino uno van mega majd késöbb ha megy a programozés is....
jaja arra akartam célozni a JTAGICE MKII....

 © h2o2013. márc. 29. 09:56 | Válasz | #792 
A VIsual Studio-s megoldás nem nyerte el a tetszésed?

 © h2o2013. márc. 29. 09:47 | Válasz | #791 
Szerintem te a JTAGICE MKII-re gondolsz, mert az AVRISP csak kód letöltésére jó. De ha már JTAGICE, akkor minek Arduino? Veszel egy ATMega16-ot, annak is van JTAG interface-e. Egy kis körítés és meg is van Arduino nélkül.

 © mambo2013. márc. 29. 08:40 | Válasz | #790 
Na akkor te már jobb vagy nálam programozás szintem mert foglalkozol egy ideje arduinoval!
Ha elakadnék programozásban lehet lenne pár kérdésem majd!
Most nekem is a MIFARE beléptetö redszeres projekt az elsö cél ami készre kel megcsinálnom... de várom hogy megérkezen az olvaso és a kulcsok!
Ehez a sima spi portos 12$ mc522 találtam már használható kodot sok keresgélés után mivel irni/ olvasni is lehet de csak majd össze kel rakni a kodot rendesen ....
De ahogy a picnék szeretném látni hogy mi is történik a prociban arduinonál is ezért keresem a debbug funkciot persze ehez proceszor támogatásis kell sajnos a mega2560 támogatja csak ezt a kicsi tesoja nem 328... lehet be kel ruháznom egy AVRISP-MKII clone hadwere amivel megis látom amit akarnék:(

 © h2o2013. márc. 29. 07:57 | Válasz | #789 
Ezt hogy érted?
Van egy Diecimila-m, használtam is erre-arra, de debug-nak elég volt a soros port.
Viszont így hogy rákérdeztél és keresgéltem,megtetszett ez a Visual Studio-s megoldás. Az eredeti IDE nekem nem nagyon jött be.
Lehet, hogy én is beruházok egy MIFARE olvasóra... De mire ideér...

 © mambo2013. márc. 28. 20:12 | Válasz | #788 
De hogyálsz arduinoval?

 © h2o2013. márc. 28. 19:40 | Válasz | #787 
Nem, de jónak tűnik...

 © mambo2013. márc. 28. 14:52 | Válasz | #786 
használtad már?

 © h2o2013. márc. 28. 11:35 | Válasz | #785 

 © mambo2013. márc. 28. 10:38 | Válasz | #784 
Arduino alá mi a legjobb szoftveres környezet amiben lehet szoftvert monitorozni ..debugolni?????
Mert ez nagyon butta ilyesmire:
arduino 1xxx software

 © Csuhás2013. jan. 11. 14:57 | Válasz | #783 
Nos közben némi egyeztetések után kiderült, hogy elég lesz ezt a kettős ciklust másodpercenként futtatni. Mivel egyéb dolga is van a procinak ezért még mindig szükség volt az átírásra, hogy a most 1800mS ciklus beleférjen ebbe a bővebb időkeretbe.

Elsőként még mindig basicben a belső ciklust
átírtam három byteos ciklusváltozójú rutinra.
Ezzel lement a futásidő 1400ms-ra

Ezután a ciklusokat asm-ben kódolva kihasználva az autoinkremens indexelést és minden változót regiszterben tárolva sikerült levinni a teljes futási időt kb 175ms-ra.
Ez már jól megfelel az enyhített feltételeknek így haladhatok tovább.

Köszönöm a tanácsokat!

 © elektron2013. jan. 09. 10:15 | Válasz | #782 
Mindig a feladathoz kell optimalizálni nem csak a nyelvben, hanem az algoritmusban is, elég sokféle feladat van és azt feltérképezni kell egy ember aki több infót tud, mint aki egy compilert megír.

 © LZ2013. jan. 09. 09:00 | Válasz | #781 
Nem csak azért jó ismételni, hogy 1 bájtra csökkentse az ember a ciklusváltozót.
Hanem azért mert a ciklus végén/elején lévő kiértékelő kód is sok időt vesz igénybe.

Itt egy példa a 480x272 TFT kijelző törlésére/színbeállítására 16 bites színmélység esetén.
SSD1963 driver, xmega proc 32Mhz tekerve.

for ciklusba ágyazva egyesével végrehajtva a törlést ~50ms kell hozzá.

ezzel a trükkel pedig 18ms alatt megcsinálja:

for (i = 0; i < ((DISPLAY_X * DISPLAY_Y) / 20); i++)
{
Ctrl_BUS = begin; Ctrl_BUS = end;
Ctrl_BUS = begin; Ctrl_BUS = end;
Ctrl_BUS = begin; Ctrl_BUS = end;
//... 20x ismételve ugyanezt
}

 © Csuhás2013. jan. 09. 07:56 | Válasz | #780 
Még egy adalék: a bascom átlagosan 147 utasítást használ el egy ciklusra. Ez egy elfogadható érték, hiszen jó asm kóddal is kell erre cca 30..50 utasítás.

 © Csuhás2013. jan. 09. 07:39 | Válasz | #779 
Igazad van. Sajnos. Az xmega 32Mhz-en 64000 utasítást futtat 2ms alatt. A ciklus durván 600*700=420000 alkalommal fut le ezen idő alatt.
Ez nagyon nem fér be ebbe a prociba. Tanulság: illene számolnom egy kicsit mielőtt butákat kérdezek. Köszi a türelmeteket!

 © isvarga2013. jan. 09. 06:59 | Válasz | #778 
Jó durva az 1.8s . Amit a kollégák felsoroltak ötleteket, azok nem tudnak ilyen mértékű futás sebesség növekedést amit szeretnél.

a minimális futási sebesség ASM-ben 4mhz (2 ciklus egymásba ágyazva,ez pic , az avr a negyede neki)(és ez csak 250x250 a te ciklusod 560x700)


movlw .250
movwf a
loop1
movlw .250
movwf b
loop2
nop
decfsz b
goto loop2
decfsz a
goto loop1

ez 250ms alatt fut le
AVR alatt elméletileg a negyede nnek

tehát az 560x700 nak cirka 3x a minimális futás ideje

Tehát az 0.001 s futási sebesség szerintem nem lehetséges.

 © isvarga2013. jan. 09. 06:18 | Válasz | #777 
Pontosan.

 © Csuhás2013. jan. 08. 22:43 | Válasz | #776 
Most kerültem gép közelbe. Elsőként egy elírást javítanék, a belső ciklusban helyesen
n:=n+abs( a(k)-a(k+i)) kifejezés van.

Jelenleg basicban megírva 1.8s körüli a futásidő, ezt kellene levinni pár ms-ra.

A ciklusoknál, elsősorban a belső ciklusnál jó ötlet lehet a byteos ciklusváltozójú szakaszokra való osztás.

A rutin egyébként egy egyszerűsített autokorrelációs rutin. Periodikus összetevőket keres egy akusztikus jelben.

Nekem is motoszkál a fejemben egy ötlet, ugyanis itt az A tömb jelentős része nem változik két futás között. Tolódnak benne az adatok jön 400 új és kiesik 400 régi és akkor kell futtatni a rutint. Azaz a tömb nagy része változatlan. Valahogy ki kellene használni azt hogy azokkal az adatokkal már futtattam a rutint.

Az eredeti program szintén asm betéttel pascalban megírva még éppen elfutott a 486 75Mhz Pc-n.

 © pbalazs2013. jan. 08. 20:56 | Válasz | #775 
Nem generál ez a fordító asm-et? Abban meg lehetne nézni, hogy van-e valami felesleges utasítás, meg hogy hogyan címezget.

 © elektron2013. jan. 08. 20:18 | Válasz | #774 
De itt is lehet olyat csinálni, hogy többszörözni a ciklust egymás után és akkor elég a sima 1 byte os ciklus változó.

 © szegelgetek2013. jan. 08. 18:35 | Válasz | #773 
Ebben, meg neked lehet igazad.
Én tényleg csak régi, - főleg DOS -s fordítók forráskódjait - és az "eredményeit" nézegettem.

 © szegelgetek2013. jan. 08. 18:33 | Válasz | #772 
Ok!
Erre nem gondoltam.

 © isvarga2013. jan. 08. 18:18 | Válasz | #771 

 © LZ2013. jan. 08. 18:15 | Válasz | #770 
Nem teljesen értek egyet.
Egy jól megírt fordító igenis figyel arra, hogy gyors kódot hozzon létre. Külön kódot generál a különböző ciklusokra, növekvő, csökkenő stb. Nem fogja mindenevőként egy subrutinba sűríteni.

A CVAVR fordító amit használok legalábbis így csinálja. Azt is meg lehet adni neki, hogy sebességre vagy kódméretre optimalizáljon. Nézegettem már egy párszor a generált ASM kódját.

Csuhás:
Ez a tömb kezelés amúgy sem lesz valami fürge.
Szerintem timerral mérd a végrehajtási időt és próbálj ki több verziót, ha nem találsz más megoldást.


 © elektron2013. jan. 08. 17:46 | Válasz | #769 
Nem is nagyon van olyan módszer, amivel ember szintű fordítást lehetne csinálni, mert akkor azt használnánk régen. Egyszerűbb dolgokkal megbirkózik tökéletest lehet fordítani, de ha bonyolódik már az ember olyan trükköket ki tud találni, hogy na csak.

 © isvarga2013. jan. 08. 17:35 | Válasz | #768 
A lehetőséget ,mint felhasználást értettem .
Egyébként egyetértek.
Csak itt jelen helyzetben semmit nem tudunk a ciklus változó deklarációjáról .
Teszem aszt ha k double lenne ,akkor valószínűleg kórusban mondtuk volna elég az int is.

 © szegelgetek2013. jan. 08. 17:17 | Válasz | #767 
"hogy mindenre fel akarják készíteni a ciklust, amitől aztán nagyon fut."

Elírtam.
Mindenre fel akarják készíteni a ciklust. Az adott esetben felesleges részek is lefutnak, ezért nagyon lassúak.

 © szegelgetek2013. jan. 08. 17:15 | Válasz | #766 
Szerintem, féligazság, amit írsz.
Először fordíts vissza egy akármilyen magas szintű nyelven írt ciklust asm-re.
Ezek a ciklusok nagyon aprólékosan vannak írva. Éppen az a gond, hogy mindenre fel akarják készíteni a ciklust, amitől aztán nagyon fut.
Pl. "visszafelé is tudjon menni", meg ezer más dolog.
Szerintem, jobb, ha magad győződsz meg róla.

 © isvarga2013. jan. 08. 17:05 | Válasz | #765 
Szerintem hiába írod át asm-re , pont az történik mint amit az elektron írt -> helyettesíted asm sorokkal azokat a kifejezéseket ,amit egyébként a fordító ugyanúgy lefordít asm-re .(ha szűken a két egymásba ágyazott ciklust nézzük) Az asm a megfelelő használatától lesz gyorsabb .(ugye a magas szintű nyelv alkotói nem tudnak minden lehetőségre gondolni) Amit írtam csak abban az esetben nem igaz ha beépített interpreter van (program).

 © b_pista2013. jan. 08. 16:23 | Válasz | #764 
Imre,
nem használok bascomot, de......
... javaslom lapozd át a controller adatlapját. Nem mindegy ugyanis, hogy a változóid mit takarnak. Emellett találsz bascom példákat a neten, ha "mix asm bascom"-ra rákeresel a gogliban.

üdv
b_pista

 © Csuhás2013. jan. 08. 14:40 | Válasz | #763 
Ahogy írtam nem tudom a pascalt asm-be átírni.
( Most ép el vagyok veszve a címzési módok között... )

 © elektron2013. jan. 08. 14:37 | Válasz | #762 
De mit nem értesz, vagy mi nem megy ?

 © Csuhás2013. jan. 08. 14:20 | Válasz | #761 
Itt láthatod hogy nagyon egyszerűen lehet kevert nyelven írni:

http://avrhelp.mcselec.com/index.html?mixing_asm_and_basic.htm

 © elektron2013. jan. 08. 14:16 | Válasz | #760 
Csak egy ötlet C-be kell megírni és amit lefordít asm listát hozzá linkelni.

 © elektron2013. jan. 08. 14:16 | Válasz | #759 
Ahhoz a Bascomhoz hogy lehet linkelni assembly betétet ? Ha teszem azt meg lenne már a rutin.

 © Csuhás2013. jan. 08. 14:02 | Válasz | #758 
Segítséget szeretnék kérni: Egy pár soros pascal rutint kellene átírnom xmega procira de sebességkritikus volta miatt assembly rutin szükséges. ( Egyébként a program többi része bascom alatt íródik. ) Mivel assemblyben nem programoztam még atmel procit ezért csak kínlódok vele. Erről volna szó:

var
a: array [0..1400] of byte;
c: array [0..750] of integer;

.....
for k:=90 to 650 do begin
n:=0;
for i:=1 to 700 do n:=n+abs(a-a[k+i]);
c[k]:=n;
end;

Ha valaki tud segíteni akkor mailt dobjon mert nem akarom ezzel jobban foglalni a fórumot.

 © elektron2012. dec. 09. 19:42 | Válasz | #757 
Igen írtam is, hogy már ott ez látszik, hogy meg lett oldva, közben meg is dícsérlek, nem rosszakaratból írtam, hanem hogy ha neked is esetleg hibázik, akkor tudjál róla, hogy ilyen oka is lehet.

A te paneledet csináltuk meg, mert azt találtam, ami jól nézett ki, s köszönöm én is a munkádat, sokat segített és honlapod is ügyes, meg te is.

Nekem hosszabb távon is ilyesmi terveim van ilyen elektronikákkal foglalkozni és amit lát az ember abból sok mindent megtanul, amit fel lehet használni azt a tudást a későbbiekben.

Van pár tudnivaló, amit valós áramköröknél be kell tartani, illetve oda kell figyelni rá, amennyiben pl. valahogy aránylag nagyobb áramok folynak, ugyanis ott a feszültség már elég sok tud esni vékony vezetékek esetén, a GND vonalon pedig minden átfolyik amennyit összesen fogyaszt valami, ha mondjuk egyik szélén van betáplálva a GND és a működtető fesz.

Azonkívül ha nagy frekvencia van, mint pl. FET kapcsolásnál is ahol elég gyors áram változásra van szükség, ott még a vezeték hossza is megnöveli ezt az eső feszültséget, az induktivitása miatt, ha hosszú vezeték megy valahova.

Annyit kellett hogy húztam egy vastag GND vezetéket az IR2184-hez, agy az áram nagy része ott folyik el, a processzor fele már csak egy kicsi emiatt. Nem kellett azért elvágni se a GND eredeti vezetékét se, egy pót vezeték ráforrasztása volt.

Ez a mostani nyákod is egész rendezett és szép is.


 © kozo2012. dec. 09. 18:41 | Válasz | #756 
írtam mailt , azt hittem rosszul hiszem.
Okoskodjunk már ki egy jobbat. Had egyen itt egy két embert a penész!


 © svejk2012. dec. 09. 18:38 | Válasz | #755 
"írj jobbat . Csinálj jobb nyáktervet. "

Ne nevettess már, láttál Te itt valamit is publikálni Elektrontól? Még az adatlapja is megtévesztően volt kitöltve, míg rá nem pirítottam. :(

 © kozo2012. dec. 09. 18:27 | Válasz | #754 
Én sem mint szerintem 10 ből 9 ember nem tett mást mint a parancs karaktareit átírja.
írj jobbat . Csinálj jobb nyáktervet.
Nem egyszerű , szerintem .
Az én szellemi színvonalamtól ennyi tellett .
Kárt nem okoz senkiben aki megcsinálja az én nyáktervem , legfeljebb némi kiindulási alapnak adok egyfajta lehetőséget .
Megpróbáltam , ennyi sikerült . Mindenki javítsa ahogy érzi .
Én sem tettem eddig másképp .
Megpróbálom Atmega8 al kicsit UHUsítani ugyan ezt az SMCt . Elfoglalom magam . Bár lehet nem kellene . De valami hajt . Ami gondolom Téged is .
Ne add fel és az encoder + és - közé is elég a 100nF kondi !

 © kozo2012. dec. 09. 18:20 | Válasz | #753 
Csinálj jobb nyáktervet és tedd közzé .
Az eredeti hex vagy ASM filét szerintem egyszerűbb újra mint átírni . Én sem mint szerintem 10

 © kozo2012. dec. 09. 18:09 | Válasz | #752 
Nem .
Az 1.0 ás SMC csinált ilyet , de ez ami most fent van az oldalamon az nem produkálja a szitut.

 © elektron2012. dec. 08. 23:55 | Válasz | #751 
A GND vonal a proci után még elsétált a nagy áramú IR2184 fele és így az megrángatta GND pontját mikor vezérelve lett az az IC és emiatt tulajdonképpen RESET lett, mert a OD level igencsak 4.5V ra van állítva és elérte azt a szintet a tápfesz visszaesése anélkül, hogy oszcilloszkppal néztem volna logikus volt innentől, egy GND vezetéket vastagot a IR hez vezetve megszűnt a jelenség ... de megláttam az újabb verziójáéban a nyák át is lett tervezve úgy hogy ez a dolog ne fordulhasson elő ilyen mértékben bár ott is van még mit javítani úgy látom.

 © elektron2012. dec. 08. 23:00 | Válasz | #750 
Svejk komám, azt hiszem megvan a hiba oka, hát behalok ...

 © elektron2012. dec. 08. 22:38 | Válasz | #749 
Az első motorot visszaraktam és olyan érdekeset csinál, hogy egyik irányba 2A t ad neki, ha másikba térítem csak 0.2A kb és
mintha ugrana egyet elengedi egy pillanatra , nem progrmahiba az ???

Elég gyanús, lehet iylen miatt megy ki errorra is.

Lehet akkor ettől akad le a nagyiobb is hiszen ott is a hiba felnő és azért leakad akkor ez az OKA igencsak.
ÍGy már érthető, mos tkérdés amásik panellel procival is ugyanez van akkor vagy a híd a szar pl vagy a program.
Meg kell nézni akkor másik anelle l is de jó lenne ha egy működne és tunám mi az okiuk nem ilyennel szórakonzi
mikor értelmesebben is lehetne időt tölteni.



Másik jelenség, hogy ha elkezdem pár Hz frekivel ide oda kézzel mozgatni engedi kilibben elég nagyokat mintha valami rezonanciában lenne
ezt meyik paraméter okozhatja ?

Közben a Encoderre tettem szűrést 1nF ot, ja de leeht csak egyik csatornára .... műásikra is kivenni a 100nF ot akkor
az kimaradt mert A B csatorna van ugye ...

Meg egy 10k felhúzó ellenállást tettem RESET jére hamarabb beindul így úgy néz ki nem is fagy ott le induláskor így ...


Na melyik paramépter engedheti így libegni ? Vagy D tag túl nagy és nem engedi gyorsan belibbenni vagy I tag kicsi ?
Lehet I tag kicsi ...

Az I tagot megdupláztam és jobb let sokkal a kilengés nem engedi annyira.

Na most az eredeti progamját kéne beletölteni úgy megnézni nem a kozo félét lehet az lenne szar ??? Az a hex ?

Megnéztem másik panelt is az is ugyanúgy viselkedik, ahogy itt leírtam vagy 10 sorral feljebb egyik irányba nem nagy erőre is elengedi
resetel míg másikba rrrorra áll meg és piros led de nem írkisemmit mert nem resetel ez valami program hiba lesz igencsak.

Letöltöttem a kzo legújab verzióját és az is ugyanazt csinálja tehát ha hibás akkor abban is bnne van.

Paraméter nem jó valami még, vag ytápom gyenge ??? De ezek nem vallószín mert akkor se kéne neki reseteni az nem erre utal.
Terminálja szar nálam hibádzik mindig...

Ja még a motor is lehet rossz ???? Egyik irányba erős másikba nem ugyanannyi áramnál, ezt egy áram tesztel meg lehetne nézni ...

Ha adok enki fix áramot a labortáppal pl. de nem ez azért nem vlaszinű mert miért megy resetbe ???? az nem nosmális
Eredeti fickó hexét nézzem mág cmeg cska ...


Nem valami fuse bit nem jó BOD resetel pl ? vagy Watchdog always on van és ez meg nem watsdogoizk ??

Na, most valami gyanús lett. Eredeti SMC3A is azt csinálja mint emezek, tehát nem ott van abaj illetve akkor az is rossz ha
amiatt lenne.

De megláttam még valamit, mégpedig a paneln a FET híd felső részén a vezrlő vonal hosszan megy az áram vezeték mellett párhuzamosan
nem amiatt zár le az egyik fet és amiatt gyengül el ????

Ez kisebb motornál pl lehet nem tünne fel de ennépl ahol 3A is megy 20W on ott előfordulhat ???
Oszcilloszkóppal meg kéne nézni mit mutat az a híd illeve hog a proci jele és a FET vezérléssel mi a helyze ???
Vagy ott ellenállás nem jó?

Vezeték panel terv baj lesz lehet ????
Mert a progam jónak nézhet ki, mert ott a Torque limiten ltászik, hogy a proci az kiadja a PWM jelet a max torquen elvileg
ekkor a proci kimenő jele egyforma lesz mindkáét irányba kérdés hogy a FETnél is kimenő áram mit csinln az nem igen lesz jó, mert
az ampermérő Pici ármot mutat pedig a PWM rajta van elvileg tottál, tehát nem is a morot klesz a baj ,,,, mert az akkor venné az áramot
is vagy mégse ??? Tehát ugyanazt a feszt ráadom a motorrra nem gyengébb abban az irányban, ezt meg egy másik motorral is meg
lehet nézni, hogy ha az is ugyanaezt csinálja, akkor nem a motor rossz, hanem a board hardver mégmeg a FET hajtás vagy a vezetékezés
vagy kondi vagy akármi ....




 © elektron2012. dec. 08. 22:37 | Válasz | #748 
Mit gerjed , na pont most jutottam hasonló következtetésre, végig próbálgattam mindent egy litániát írtam, hogy lássam mi a helyzet, és van egy gyanúm ... de a gerjedést hogyan érted ? Segítenél ?

 © svejk2012. dec. 08. 21:44 | Válasz | #747 
Gerjedés.

 © elektron2012. dec. 08. 21:03 | Válasz | #746 
Letöltöttem a legújabb verziójú hexedet és az is azt csinálja, neked ilyesmi nem tűnt fel ?

 © elektron2012. dec. 08. 20:17 | Válasz | #745 
MicroC pro for AVR t használtatok már ? Az demo verziója éppen annyit tud, csak hogy a TFTLCD t háttért kifest több nem fér a 4096 byte ba ...

 © elektron2012. dec. 08. 20:15 | Válasz | #744 
Ez az SMC szervó elég érdekes dolgot csinál:

1. Egyik irányban ha próbálom kézzel eltéríteni, akkor felmegy 2A ig, majd elengedi sorosra nem ír semmit, error led piros világít.
2. Másik irányban ugyanezt csinálva 0.2A körül elengedi és RESETel a bejelentkező szöveggel.

Ez mitől lehet, normális ? Persze nyilván nem, ez valami eredeti bugja, vagy más oka lehet ?

 © elektron2012. dec. 02. 19:18 | Válasz | #743 
http://www.mikroe.com/mikromedia/xmega/

Ilyenetek nincs valakinek ?

Borzasztó lassan tölt fel a bootloadere, egy 2000kB hex file 15-20 perc alatt megy fel, szerintem annak nem kéne több idő, mint 3 perc pl. ???

 © kozo2012. dec. 02. 18:10 | Válasz | #742 
AVR doktor üzemkész panelt vennék vagy csak nyákot . Ha valakinek van felesleges jó árasítva ... megvenném , megköszönném !

 © elektron2012. nov. 25. 21:34 | Válasz | #741 
De, ha valaki hülyeséget lát az én számolásomban szóljon.


[1] 2 3 4 5 ... Utolsó

Ugrás a tetejére

Tárhely és domain a MediaCentertől

Untitled Document Fórumtagok ftp könyvtára: cnctar.hunbay.com