HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


Az AVR és lehetőségei...

Rekalaca kezeli! :))

 

Időrend:
Oldal 5 / 25 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   1  2  3  4  5  6  7  8  9   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

Törölt felhasználó    2016-05-02 18:36:00 [1020]

sziasztok!

Valaki tud segiteni arduino programozásban?


lazi | 1489    2016-04-16 14:29:00 [1019]

Órajel jó volt, 2561-nél a DIV8 okozhat problémát, de nem az volt.
A sim valóban átugorja, de az nem volt benne.
Kicsit prózaibb volt, nem volt feldugva egy jumper, azért nem ment a kijelző.

Előzmény: Csuhás, 2016-04-15 14:21:00 [1018]


Csuhás | 6689    2016-04-15 14:21:00 [1018]

Két ötlet:
Helyes a megadott órajel érték?
Mintha volna olyan fordítási opció ( $sim ) ami az időzítések átugrását állítja be a szimulátoros nyomkövetés érdekében.

Előzmény: lazi, 2016-04-15 13:53:00 [1017]


lazi | 1489    2016-04-15 13:53:00 [1017]

Üdv

BASCOM problémám adódott. A waitms parancs nem akar működni, a program lefut, beég a prociba, de az összes időzítés parancsot kihagyja, átlép rajta, sehol nincs várakozás.
Volt már ilyen nyűgöm, de a probléma megoldása után nem véstem fel a kalendáriumba a módszert, hanem jótékonyan elfelejtettem. Van valakinek hasonló emléke és megoldási módszere?


Csuhás | 6689    2016-04-13 16:00:00 [1016]

No azt hiszem megoldódott! Üvölteni tudnék...
Bascom alatt fejlesztek és onnan is szoktam programozni ezért a libusb driver volt telepítve a gépemre.
Nos az emlegetett hibák mind ebből felállásból származnak.
Felrakva a jungo drivert, és avrstudióból nézve már olvasható a chip id, törölhető, programozható a chip.
Sajnos két napig ezt nem léptem meg és csak bascomból illetve avrdude programozó felületről próbálkoztam.
Szóval a jó édes nénikéjüket!

LZ | 1538    2016-04-12 09:55:00 [1015]

Húha...

Ott van baj bőven. Gondolom a programozód másik panelen megy. VAgyis az kizárható.
Erősen HW hiba szagú a dolog, vagy nem úgy sikerült huzalozni a panelt vagy alkatrész hiba.
Pl az AVcc lábon lévő induktivitás nem szakadt-e.
Xmegának tudtommal egyáltalán nem kell külső órajel programozáshoz (nem lehet olyan állapotba tenni) tehát az biztos nem.
Nyák zárlat esetleg? Egyszer kaptam olyan nyákot hogy finom porszerűen rajta volt a réz a vezetősávok között.
Egyébként studióval próbálkozz szerintem. De ne a hetessel, mert az szegény nagyon gáz lett.

Előzmény: Csuhás, 2016-04-11 20:37:00 [1014]


Csuhás | 6689    2016-04-11 20:37:00 [1014]

A problémámat elfedte egy másik:
Történt hogy az egyik programozás után nem ment a bootloader. Vettem az avrisp mk2 programozót és beírtam újra a loadert. A programozáskor nem jelzett hibát de a fuse bitek írásánál volt hibajelzés. Viszont innentől kezdve tégla lett a xmega 256a3u prociból. Nem lehet írni mert nem tudja a chippet azonosítani mert ID-ként zérusokat olvas. Adtam neki külső órajelet de semmi változás. Kicseréltem a procit. Minden jó volt de az avrisp-vel való egyszeri programozás után ugyanaz a helyzet. Ugyanígy viselkedik bascom programozó felületről és avrdude alól is.
Ha bascomból rádugok egy másik panelt és felismertetem a procit akkor átdugva a döglött panelre akkor tudom olvasni a fuse biteket. Itt az első protected byte zérus azaz minden védelem be van kapcsolva, a többi config byte rendben van. Ha ilyenkor kiadok egy törlés parancsot akkor nincs hibajelzés, de a procit továbbra sem ismeri fel, de ha egy másik panelről felismertetve újra kiolvasok akkor látszik hogy a lock byte maradt zérus. Mi lehet a hiba, illetve mit lehetne méh kipróbálni?


LZ | 1538    2016-04-11 07:59:00 [1013]

Csörgess már meg Attila mert nem találom a számod.
Megnéztem a programot...

Előzmény: Gyárfás Attila, 2016-04-10 13:30:00 [1007]


LZ | 1538    2016-04-11 07:50:00 [1012]

BOD be van kapcsolva?
Mert ha igen és az értéke is jó helyre van belőve, akkor teljesen mindegy milyen lassú a táp felfutásod.

Előzmény: Csuhás, 2016-04-09 21:30:00 [1004]


Csuhás | 6689    2016-04-10 20:21:00 [1011]

Az rendben van, ellenőriztem. No meg adatsérülés kizárólag ki/be kapcsoláskor van, egyébként hibátlanul működik.

Előzmény: Törölt felhasználó, 2016-04-10 20:08:00 [1010]


Törölt felhasználó    2016-04-10 20:08:00 [1010]

hidegités...tuskék simitása proci tápfesznél...
vagy ami még jó elem..akku táprol inditasz cpu részt ....(alvo üzemodbol) pl


Csuhás | 6689    2016-04-10 19:50:00 [1009]

Bootloader van. Elég összetett mert sd kártyára menti a fw és onnan tölti be, mert így lehet frissíteni a kártyára másolással is. Ráadásul a fw aes kódolt hogy nem lehessen lenyúlni. A táp felfutásra rámérek, mert többféle táp van a panelon. Feszültségeket, zajt mértem rajtuk, de felfutást azt eddig nem. Köszi az ötletet.

Előzmény: pbalazs, 2016-04-10 16:18:00 [1008]


pbalazs | 629    2016-04-10 16:18:00 [1008]

Van bootloader? Arra gondolok, hogy induláskor esetleg butaságot csinál.
A másik gondolatom, hogy a nem megfelelő táp felfutás okoz gondot. Mérd meg a felfutási meredekséget, és vesd össze az adatlappal. uC-nél még nem találkoztam olyannal, hogy a nem megfelelő táp felfutás gondot okozna, de sok egyéb esetben már igen, amikor megbolondította a belső táp és reset áramköröket.

Előzmény: Csuhás, 2016-04-09 21:30:00 [1004]


Gyárfás Attila | 584    2016-04-10 13:30:00 [1007]

Üdv
Egy kis sígítség kellene, arduinoban. Nem cnc,de hátha valaki profi ebben.
Van egy újabb óra projekt. Egy Adafruit Neopixel 60, Ws2812 led gyűrűből áll, rtc, és egy arduino nano-val. A lényeg.
A progi egy oldalról van, működik is rendesen. De egy gond van! Az ebay ről rendeltük a led gyűrűt,ami persze kinai koppintás. És sajnos a kis kinaiak elbaszták, mert az adat bemeneti jel pont rossz oldalon van. Ugy néz ki minha megtükrözték volna a nyákot. Ezért a programv(idő kijelzés) balra megy. A mellékelt linken látható a videón. És a fotókon is. A fekete nyák az eredeti, a kék nyák (ez van nekünk) a kinai. A kérdés, meg lehetne e a programot úgy módosítani,hogy a helyes irányba (jobbra) menjen a kijelzés?
A program is a linken mellékeltem.
ring clock
Ha tudna valaki segíteni, megköszönném.


Csuhás | 6689    2016-04-09 21:54:00 [1006]

Ezt ismerem, de ide nem kell, normál estben hetek is eltelnek két konfiguráció változás között.

Előzmény: Törölt felhasználó, 2016-04-09 21:48:00 [1005]

Törölt felhasználó    2016-04-09 21:48:00 [1005]

van olyan modszer ami kiméletes eeprom irási ciklus megnövelésében!
vagyis ha ugyan az az érték van eeprom értékben az uj érték meg egyezik nem irja ujra csak ha eltér a régi érték ez eeprom update....

Előzmény: Csuhás, 2016-04-09 21:30:00 [1004]


Csuhás | 6689    2016-04-09 21:30:00 [1004]

Az xmega adat eepromjában ritkán változó konfigurációs adatokat ( ip cim és hasonlók ) tárolom. Ezek ritkán változnak. Az egész területről van egy másolatom ugyanitt magasabb címen. Mindkét területnek van itt tárolva crc kódja. Minden bekapcsoláskor ezt újra számolom. A tapasztalat az hogy kb minden huszadik bekapcsoláskor az elsődleges területen nullázódik néhány byte. A terület elején, egymás utáni de adatszerkezet szerint nem összefüggő byteok. A másolt terület eddig még nem volt sérült. Ha hibát találok akkor a hibátlan crc-jű területről visszamásolom az adatokat. Hétfőn kipróbálom hogy az egészet hátrább tolom egy adatterületnyivel és megnézem hogy a véletlen nullázódások maradtak az eredeti címen vagy követték az adatblokkot. Errata nem rossz ötlet, megnézem. Eddig a fórumokat böngésztem, nem sok eredménnyel. Még annyi hogy Bascomban van a program, és abban azért akad néhány bug, pláne az xmega kezelésében.

Előzmény: pbalazs, 2016-04-09 20:58:00 [1003]


pbalazs | 629    2016-04-09 20:58:00 [1003]

Mindig ugyanarra a területre mentesz elsődlegesen? Nem lehet, hogy túllépted az írási ciklust? Elsődleges mentés után csinálsz RAM-EEPROM összehasonlítást? (gondolom RAM-ban van a kiírandó adat) A másodlagos mentés is ugyanabban az EEPROM-ban van, csak más területen? Errata nem mond semmit?

Előzmény: Csuhás, 2016-04-09 19:01:00 [1002]


Csuhás | 6689    2016-04-09 19:01:00 [1002]

Mondjuk ez nem rossz ötlet, van a rendszerben sd kártya, arra mentem az adatokat lehetne oda is egy eeprom mentést készíteni. Mondjuk az eddigi tapasztalat alapján az elsődleges adat eeprom terület szokott sérülni, míg ugyanabban az eepromban levő másolat eddig még mindig ép maradt. Így onnan mindiig visszaállítható volt a konfiguráció.

Előzmény: Törölt felhasználó, 2016-04-09 18:57:00 [1001]


Törölt felhasználó    2016-04-09 18:57:00 [1001]

külsö sd kártya lehet megbizhatobb lene ha sokszor kell menteni szenzor logolás pl még ha 1s ként is eeprom véges lesz rövid idön belül... vagy mentési ciklusra valami timeres figyelés beteni...

Előzmény: elektron, 2016-04-08 15:52:00 [1000]


elektron | 15859    2016-04-08 15:52:00 [1000]

Lehet jobb lenne, ha külső EEPROM-mal menne.

Előzmény: Csuhás, 2016-04-08 15:45:00 [998]


elektron | 15859    2016-04-08 15:51:00 [999]

Gondolom a táp megkapása elengedése sem mindegy, hogy történik, lehet legjobb lenne, ha valami komparátor figyelésével kapna a processzor tápot, kikapcsolásnál is, lekapná a resetjét stb. hogy halálbiztos legyen a működése.

A sima megáknál is olvastam az EEPROM nem valami megbízható, csak ha valami kül9n védelemmel van felszerelve az áramkör, de azt meg nem szokták csinálni, ha az ember magának megoldja akkor lehet menne garantáltan.

Előzmény: Csuhás, 2016-04-08 15:45:00 [998]


Csuhás | 6689    2016-04-08 15:45:00 [998]

Menet körben tudnom kell írni olvasni. A BOD 2.6V jelenleg ( az xmega 3.3V-os )
A működés során az eeprom írás után végzek egy olvasást a 0 címről hogy oda álljon a pointer, de az sem igazán segített. A program futása közben számolgattam a crc-t de nincs hiba csak a ki/be kapcsolás rontja az adatot az is csak a eeprom terület elején. Mindjárt hátrébb teszem próba célból az adatokat, csak épp megmakkant a procim vagy a programozóm: nem ismeri fel cpu-t (chip id: 0000 )

Előzmény: elektron, 2016-04-08 15:36:00 [997]


elektron | 15859    2016-04-08 15:36:00 [997]

FUSE bitekkel esetleg, én sem tudom csak gyanítom, meg kell nézni. Lehet, hogy nem tudja, az EESAVE bit a chip erase-nél védia tartalmát, az lehet menet közben nem védi meg az írástól.

A BOD level biteket mindenképp 4.5V-ra érdemes tenni, az valamennyire megvédi, ha atáp megy lefele, akkor proci megáll így.

Előzmény: Csuhás, 2016-04-08 15:29:00 [996]


Csuhás | 6689    2016-04-08 15:29:00 [996]

Lehet az adat eepromot írásvédettre kapcsolni?

Előzmény: elektron, 2016-04-08 15:27:00 [995]

elektron | 15859    2016-04-08 15:27:00 [995]

EEPROM-ot írásvédettre programozni talán ?

Előzmény: Csuhás, 2016-04-08 14:49:00 [994]


Csuhás | 6689    2016-04-08 14:49:00 [994]

Ötletet kérek.
Van egy elég nagy műszer vezérlő programom egy atxmega256-nak több mint felét megtölti. A beállításokat a belső adat eepromban tárolom, de mert volt adatvesztésem ezért a fontos területről másolatot készítek és az eredeti illetve a másolt részről is crc-t számítok.
Bekapcsoláskor ellenőrzöm és ha kell javítom. A tapasztalat azt mutatja hogy az elsődleges terület gyakran sérül, néhány, vagy akár egy tucatnyi byte is nullázódik. Kérdés mit lehet tenni áramkörileg vagy program oldalról a ki/be kapcsoláskori adatvesztés megelőzésére?


n/a (inaktív)    2016-04-05 18:00:00 [993]

Megjöttek a tranzisztorok, ki is cseréltem.
Sikerült megoldani, a programot is. Most működik 2 tolómérővel. A többi már könnyen fog menni. Köszönöm a segítséget.

Előzmény: hidroponi, 2016-04-03 11:23:00 [991]


n/a (inaktív)    2016-04-03 16:33:00 [992]

A program működik, egy tolómérőt kiír. A próbálgatások alatt két erősítőt megsütöttem. Nincs itthon több transisztorom. Vettem a neten. Talán kedden megjön. Addig építem a házat, a kijelzőnek. Köszönöm a segítséged.

Előzmény: hidroponi, 2016-04-03 11:23:00 [991]


hidroponi | 510    2016-04-03 11:23:00 [991]

ha kiszeded a decode rutinbol a kiiratast es a loop-ban a for zaro kapcsos zarojele utan iratod ki oket a results tomb-bol akkor egyszerre lathatod mindet.

Előzmény: n/a (inaktív), 2016-04-03 10:38:00 [990]


n/a (inaktív)    2016-04-03 10:38:00 [990]

A program szintaktikailag jó. Működik is.
egyelőre egy tolómérőt tudok kiíratni.

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]


n/a (inaktív)    2016-04-02 19:25:00 [989]

Egyelöre hibaüzeneteket kapok. Megpróbálom kijavítani. Vagy ha Neked nincsenek hibaüzenetek, el tudnád küldeni e-mailben az .ino fájlt?

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]


n/a (inaktív)    2016-04-01 21:14:00 [988]

A bekötés nem gond, azt a részét még érem is.

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]


n/a (inaktív)    2016-04-01 21:05:00 [987]

Csak annyi a bajom, hogy az esztergámhoz szeretnék digitális kijelzőt csinálni Arduino Uno-val. Van 3 tolómérőm. Azokat szeretném dekódolni. Kiírni egy LCD-re, hogy jobban lássam. A neten találtam egy programot ami 1 tolómérőt tud kiolvasni. Ezt a programot szeretném átalakítani, hogy tudjon 3 tolómérőt dekódolni. Röviden ennyi.

Előzmény: elektron, 2016-04-01 15:42:00 [983]


n/a (inaktív)    2016-04-01 20:59:00 [986]

Köszönöm, sajnos ma már nem tudom kipróbálni. Közbejött valami, de alig várom, hogy teszteljem.

Előzmény: hidroponi, 2016-04-01 17:18:00 [984]

hidroponi | 510    2016-04-01 17:19:00 [985]

koszi, odaraktam.

Előzmény: gab27, 2016-04-01 07:27:00 [982]


hidroponi | 510    2016-04-01 17:18:00 [984]



ide feltoltottem

ez csak annyit csinal, hogy 3 tolomero adatait
lekeri es kiirja. illetve csinaltam egy results tombot amibe bele is pakolja az egyes eszkozok eredmenyeit. szintaktikailag ugy nez ki jo. arra hogy jol mukodik is eszkozok hianyaban nem tudok garanciat vallalni.

(nem tudom mennyire vilagos, azt hogy az arduinod melyik digi bemenetere kototted a tolomeroidet azt a clockpin es datapin tombok ertekeivel tudod beallitani. most ugy nezki az elso mero a 4-5, a masodik a 6-7 es vegul 8-9)

sok sikert!

Előzmény: n/a (inaktív), 2016-04-01 06:40:00 [981]


elektron | 15859    2016-04-01 15:42:00 [983]

Mi is a bajod végül is , mi nem jó, vagy érthető ?

Előzmény: n/a (inaktív), 2016-04-01 06:40:00 [981]


gab27 | 530    2016-04-01 07:27:00 [982]

Próbáld meg itt, sokaknak bevált az elmúlt bő 10 évben.

Így fog kinézni a kódrészlet, ha a C nyelvhez tartozó kiemelést választod.

Előzmény: hidroponi, 2016-03-31 21:59:00 [980]


n/a (inaktív)    2016-04-01 06:40:00 [981]

Az nagyon jó lenne.


hidroponi | 510    2016-03-31 21:59:00 [980]

holnap ha lesz egy kis idom, megprobalom leirni..

Előzmény: n/a (inaktív), 2016-03-31 21:00:00 [979]


n/a (inaktív)    2016-03-31 21:00:00 [979]

Így kellet volna?
[code]
int i;
int s;
int sign[] = {0,1,2};
long value[] = {0,1,2};
float result[] = {0,1};
int clockpin[] = {4,6,8};
int datapin[] = {5,7,9};
unsigned long tempmicros;
[/code]

Előzmény: hidroponi, 2016-03-31 20:31:00 [977]


n/a (inaktív)    2016-03-31 20:37:00 [978]

Dehogynem
a 7. és 8. sor pl.
Aztán a Serial.begin után
A void loopután is az áll amit javasoltál.
A mult héten kezdtem a programozással foglalkozni. Tudom ez nem kezdő feladat, de erre lenne szükségem.


hidroponi | 510    2016-03-31 20:31:00 [977]

nem latom, hogy alkalmaztad volna azokat a dolgokat, amiket emlitettem.

a pin beallitasokkor nem hivatkozol a tomb adott elemere es a hasznalatkor sem.

Előzmény: n/a (inaktív), 2016-03-31 20:14:00 [976]


n/a (inaktív)    2016-03-31 20:14:00 [976]

úgy gondolom, már csak a decode rész ami nincs rendben. Legalább is remélem.

n/a (inaktív)    2016-03-31 20:11:00 [975]

Jól elszúrtam a topicot

Előzmény: n/a (inaktív), 2016-03-31 20:09:00 [974]


n/a (inaktív)    2016-03-31 20:09:00 [974]

[code]
int i;
int s;
int sign;
long value;
float result0;
float result1;
int clockpin[] = {4,6,8};
int datapin[] = {5,7,9};
unsigned long tempmicros;

void setup() {
Serial.begin(9600);
for(i=0; i < sizeof(datapin); i++) {

pinMode(clockpin, INPUT);

pinMode(datapin, INPUT);

}

}

void loop() {

for(i=0; i < sizeof(datapin); i++) {

pinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

while (digitalRead(clockpin)==HIGH) {} //if clock is LOW wait until it turns to HIGH

tempmicros=micros();

while (digitalRead(clockpin)==LOW) {} //wait for the end of the HIGH pulse

if ((micros()-tempmicros)>500) { //if the HIGH pulse was longer than 500 micros we are at the start of a new bit sequence

decode(); //decode the bit sequence

}

}

void decode() {

sign=1;

value=0;

for (s=0;s<23;s++) {

while (digitalRead(clockpin)==HIGH) { } //wait until clock returns to HIGH- the first bit is not needed

while (digitalRead(clockpin)==LOW) {} //wait until clock returns to LOW

if (digitalRead(datapin)==LOW) {

if (i<20) {

value|= 1<<i;

}

if (i==20) {

sign=-1;

}

}

}

result0=(value*sign)/100.00;
result1=(value*sign)/100.00;

Serial.print(result0,2);
Serial.println(result1,2);
delay(1000);

}

[/code]


n/a (inaktív)    2016-03-31 20:08:00 [973]

[code]int i;
int s;
int sign;
long value;
float result0;
float result1;
int clockpin[] = {4,6,8};
int datapin[] = {5,7,9};
unsigned long tempmicros;

void setup() {
Serial.begin(9600);
for(i=0; i < sizeof(datapin); i++) {

pinMode(clockpin, INPUT);

pinMode(datapin, INPUT);

}

}

void loop() {

for(i=0; i < sizeof(datapin); i++) {

pinMode(clockpin, INPUT);
pinMode(datapin, INPUT);
}

while (digitalRead(clockpin)==HIGH) {} //if clock is LOW wait until it turns to HIGH

tempmicros=micros();

while (digitalRead(clockpin)==LOW) {} //wait for the end of the HIGH pulse

if ((micros()-tempmicros)>500) { //if the HIGH pulse was longer than 500 micros we are at the start of a new bit sequence

decode(); //decode the bit sequence

}

}

void decode() {

sign=1;

value=0;

for (s=0;s<23;s++) {

while (digitalRead(clockpin)==HIGH) { } //wait until clock returns to HIGH- the first bit is not needed

while (digitalRead(clockpin)==LOW) {} //wait until clock returns to LOW

if (digitalRead(datapin)==LOW) {

if (i<20) {

value|= 1<<i;

}

if (i==20) {

sign=-1;

}

}

}

result0=(value*sign)/100.00;
result1=(value*sign)/100.00;

Serial.print(result0,2);
Serial.println(result1,2);
delay(1000);

}


[/code]

Előzmény: hidroponi, 2016-03-31 19:45:00 [972]


hidroponi | 510    2016-03-31 19:45:00 [972]

tedd [code] és [/code] köze a programot

Előzmény: n/a (inaktív), 2016-03-31 19:23:00 [971]


n/a (inaktív)    2016-03-31 19:23:00 [971]

Nekem is kiszedte a szögletes zárójeleket az i-vel együtt. Van valamilyen megoldás arra, hogy feltegyem a programot?


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 5 / 25 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   1  2  3  4  5  6  7  8  9   Következő ►  Utolsó ►|


 ◊