HobbyCNC fórum
  v0.9 alpha

Fórum betekintő Fórum címe: http://forum.hobbycnc.hu



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

Rekalaca kezeli! :))


Időrend:
Oldal 24 / 24 Ugrás ide:
|◄ Első  ◄ Előző  20 21 22 23 24  

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

KisKZ | 6454    2009-03-02 23:45:00 [38]

egy pillanat. Közben feltettem a másik, előbbi kérdésem alapját képező programot is.

A hiba?
Valahol az IF környékén lesz...

Az if az utána következő vizsgálatot ugye megcsinálja és ha annak az értéke igaz, akkor a következő blokkban lévőket végrehajtja.

lehetséges betenni egy else részt is ami azt a blokkot foglalja magában amit akkor kell elvégezni, ha az első vizsgálat hamissal jön vissza.
De ez most itt nincs.

VAlahol itt van a bibi de nem tudom még hol. Valamiért mindenképpen elvgzi a második if után következő blokkban lévőket.

Elmondod?

Előzmény: elektron, 2009-03-02 23:35:00 [34]


elektron | 12955    2009-03-02 23:44:00 [37]

Itt egy fejlesztő környezet C-hez, Dev-C++ a neve:

Dev-C++ C++ nyelvi fejlesztőkörnyezet


sneci | 1763    2009-03-02 23:39:00 [36]

Nem megy

Előzmény: sneci, 2009-03-02 23:38:00 [35]


sneci | 1763    2009-03-02 23:38:00 [35]

Sajnos a html formázónak külön meg kell mondani, hogy ezt hagyja meg eredetiben. Nem valószínű, hogy a fórummotor megeszi, de megpróbálom:

<code>
/*
* Formázás próba
*/

int tu; // kimenő pin változója
// (a tű az nem más mint a pin)
char buf; // buffer

void main(void)
{
int i; //ciklus változó
char *p; //buffer pinter

for (i=0, p=buf; i<sizeof(buf); ++i)
{
*p++ = 'a';
}
}
</code>


elektron | 12955    2009-03-02 23:35:00 [34]

Megvan a hiba ? Én már látom mi baja van.

Előzmény: KisKZ, 2009-03-02 23:33:00 [33]

KisKZ | 6454    2009-03-02 23:33:00 [33]

VAlahogy így nézekk ki nálam is! Még ha nem is enyire szépen, de szebben mint itt lenn.

Előzmény: elektron, 2009-03-02 23:29:00 [31]


KisKZ | 6454    2009-03-02 23:33:00 [32]

Az Arduino saját szerkesztőjével.
De hiába. Ha átemelem ide a formázás eltűnik.

Tényleg tudnátok ajánlani a tanuláshoz valami C környezetet és egy jó szerkesztőprogramot?
A C-ből létezik olyan amelyet nem kell installálni?

Feltöltöttem a könyvtáram alatt az elektronika alkönyvtár, az alatt AVR és az abban szereplő egyetlen programocska.


elektron | 12955    2009-03-02 23:29:00 [31]

Valahogy így:


elektron | 12955    2009-03-02 23:23:00 [30]

Miben szerkeszted, ezt ?Így összemosódva a sorokat kín olvasni is. Melyik programot használod ?

Tedd fel letölthetőre, a tárba, onnan áttöltve és a normális szerkesztőjében megnézve könnyebb mgtalálni mi a baja, mint bből visszarrendezni.

Van automatikus formázó funkció is az ilyen programokban, azzal szép formára hozhatod automatikusan.

Előzmény: KisKZ, 2009-03-02 23:16:00 [29]


KisKZ | 6454    2009-03-02 23:16:00 [29]

Kérlek ne röhögjetek ki! Tudom nem így kellene kinéznie egy C programnak, de valahol el kell kezdeni.


KisKZ | 6454    2009-03-02 23:14:00 [28]

Na akkor itt a következő fejtörő:
Csináltam egy kicsiny programocskát amivel ugymond kvázi PWM jelet tudok kitenni az egyik tűre. Természetesen ez nem PWM csupán olyan jellegű jel lenne.
Van két kapcosló amelyeket megnyomva tudom állítani a "kitöltési tényezőt". Az egyikkel csökkentem, a másikkal növelem,
Tudom alapvető ismereti problémáim vannak és a C-t sem ismerem, de mégis megpróbáltam amolyan ŐsBASIC jelleggelösszeütni valamit rá.
Mivel probléma adódott, így nem haladtam vele tovább és nem tettem bele azt a vizsgálatot, hogy a kitöltési tényező ne léphessen 0% alá, vagy 100% felé.
Előbb azt szeretném tudni, hogy mit baltázok el!
Ha feltöltöm a boardra és elindítom, a LED bekapcsolt állapotának ideje körről körre csökken. Pedig nincs benyomva az egyik kapcsoló sem. Aztán természetesen eléri a 0 értéket és ezután elkezd folyamatosan világítani szegénke.
Hol a hiba? Itt a forrás:
"....
/*
* Kvazi PWM
* jel generalasa
* digitalis kimeneten.
*/
int tu = 13; // a kimeneti tu valtozoja
int inp_pl = 2; // kitoltesi tenyezo csokkento gomb
int inp_min = 3; // kitoltesi tenyezo novelo gomb
int TPWM = 1000; // gerjesztes kezdeti erteke
int T2 = 500; // T1 kezdeti erteke
int T3; // T2 ertekenek szamitasa
int val_1 = 0; // 1 es gomb bemeneti valtozoja
int val_2 = 0; // 2 es gomb bemeneti valtozoja
void setup()
{
pinMode(tu, OUTPUT); // kimeneti tu deklaralasa
pinMode(inp_pl, INPUT); // kitoltesi tenyezo emelo gomb deklaralasa
pinMode(inp_min, INPUT); // kitoltesi tenyezo csokkento gomb deklaralasa
}
void loop()
{
val_1 = digitalRead(inp_pl);
if (val_1 == LOW)
{
T2 = T2 + 50;
T3 = TPWM - T2;
}
val_2 = digitalRead(inp_min);
if (val_2 == LOW)
{
T2 = T2 - 50;
T3 = TPWM - T2;
}
digitalWrite(tu, HIGH);
delay(T2);
digitalWrite(tu, LOW);
delay(T3);

}...."


sneci | 1763    2009-03-02 23:09:00 [27]

Akkor legyen ATTiny2313, az később is jó lesz valamire Abban már több eszköz van.

Előzmény: svejk, 2009-03-02 21:37:00 [25]


rekalaca | 536    2009-03-02 22:52:00 [26]

Azért a 11-es hozzászólásod alapján Te se legyél ennyire szerény.
Mit ajánlasz az induló készlethez: 13A, 2313, és még milyen proci. és kb darabszám ,hogy egyszerre rendeljek. Egyébb van.

Előzmény: svejk, 2009-03-02 21:37:00 [25]


svejk | 24225    2009-03-02 21:37:00 [25]

Na, ennek szívből örülök!!
Akkor elfogadod akár a "nagyokos" szerepét is?
Vagyis hogy ne legyen még véletlen se pejoratív inkább a Tanár Úr szerepét.
A francba, hogy pont attiny13-am nincs itthon..

Előzmény: sneci, 2009-03-02 17:49:00 [20]


KisKZ | 6454    2009-03-02 20:43:00 [24]

Milyen frekvencián fut egy loop?

KisKZ | 6454    2009-03-02 20:38:00 [23]

Sziasztok!
Átírtam egy kicsit a button példafilet.
Az alap programhoz képest annyit tettem, hogy a 3-tól 10-es digitális tűket(hogyan hívják ezeket hivatalosan?) egyenként felkötöttem egy-egy LED-re. mindegyiket kimenetre állítottam.
A cél az lett volna, hogy amikor megnyomom a gombot, véletlenszerűen válassza ki a board az egyik tűt, és arra küldjön ki egy jelet, gyújtsa fel a led-et.
az első alkalommal még nem tettem delay-t, és a gomb megnyomásakor látszólag mindegyik LED világított.
Hogy jobban láthassam, betettem egy-egy delayt a le és a felkapcsolás után.
Ekkor sem egészen úgy működött ahogy gondoltam.
Nem szekvenciálisan dolgozza a kapcsoló jeleit, hanem egy kimenet kiválasztása és meggyújtására adott parancs után má rlép is tovább és ujabb loopba kezd. Ennek az eredménye az, hogy ha nem folyamatosan nyomom a kapcsolót egyszerre több LED is éghet. Ha folyamatosan nyomom, előbb utóbb a teljes LED-sort lefedi a felkapcsolás és a fényentartás, így az egész sor ég. Ha elengedem, véletenszerű ( a véletlenszám generátor által megadott) sorrendben szépen elalszanak.
Valahogy legalábbis így értelmezem.
Valaki elmondaná, hgy tényleg mi is történik?
Itt a módosított programocska:
"
int tu;
int ledPin; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for a pushbutton)
int val = 0; // variable for reading the pin status

void setup() {
for (tu = 3; tu <12; tu++)
{
pinMode(tu, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare pushbutton as input
}
}

void loop(){
ledPin = random(3,11);
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, LOW); // turn LED OFF
delay(50);
} else {
digitalWrite(ledPin, HIGH); // turn LED ON
delay(50);
}
}"


elektron | 12955    2009-03-02 18:28:00 [22]

Vannak különböző területei a megoldásoknak:

- használt programnyelv, C, Basic, Pascal , Assembly
- használt fejlesztő környezet AVR Studio, MPLAB, stb.
- hozzáférhető és érthető leírások
- elektronikai ismeretek

- processzor ismeretek, hardver ismerete, tudása
- ártényező

- megoldandó feladat milyensége..

Ezek tükrében célszerű kiválasztani, hogy mit mivel akarunk, tudunk megcsinálni, és mennyi idő és pénz befektetésésvel.

Érdemes egy csoportra koncentrálni, és azt alaposan megismerni, úgy processzorfajtában, mint használt nyelvbe is.


KisKZ | 6454    2009-03-02 18:02:00 [21]

Ezt abba ne hagyd!!!!

Előzmény: sneci, 2009-03-02 17:49:00 [20]


sneci | 1763    2009-03-02 17:49:00 [20]

Én avr-ezek, erre álltam rá. De azért a pic-et is olvasom.
És itt ellenkeznék egy kicsit elektronnal, mert ha C akkor legyen C, és ne egy header fájlban magyarított kereszt nyelv. Hogy miért? Mert az ember mások programjából tanulhat a legtöbbet.
Márpedig a világ többi részén nem fognak nekünk magyarított szabályokat alkalmazni. Ha megtanuljuk magyarul a C-t, akkor megint magunkra vagyunk utalva.

A nyelvekről általában. A hőskorban még komoly jelentősége volt a nyelvválasztásnak. Amit meg lehetett könnyen írni Algol-ban, az körülményes volt megírni Fortranban. Amikor az első rendszerprogramozói nyelvvel ismerkedtem, abban nem volt lebegőpontos számábrázolás. Az oktató azt mondta, hogy címnek nem jó, akkor meg minek.
Vagy a Pascalban nem volt pointer.
Ma más a helyzet. Akkorát fejlődött minden nyelv, hogy szinte mindegy, hogy C, Pascal vagy Basic. Mindegyik majdnem mindent tud. Persze ezek az itt elvárható szinteken igaz, "nagy" rendszereknél azért vannak egyéb szempontok is.

De azért egy kis áttekintés nem fog megártani.

A kontrollerek az un. gépi kódú utasításokat értik és hajtják végre. Ezek 1,2 vagy 3 byte-on tárolt utasítások. A hőskorban így programoztuk a 8080-at, meg a Z80-at. Hex C9 a return és C3 a jump Egy idő után azt is meg lehet tanulni.

Közvetlenül e fölött van az assembly szintű nyelv, ami arra szolgál, hogy ne a C9-et, meg a C3-at kelljen megjegyezni, hanem a művelet egy rövidített jelét, az un. mnemonikot. Így lesz a C9-ből "ret", mert hogy ez a return vagy visszatérés, meg a C3-ból "jmp" vagyis a jump, mert hogy ez meg az ugrás egy megadott memória címre.

E fölött vannak a magas szintű nyelvek, C, Pascal, Basic,.. és még lehetne sorolni vagy húszat harmincat a használatosabbak közül. Ezekkel már szinte emberi nyelven le lehet írni a programot.

Na de elég a rizsából, a következő lecke egy egyszerű step/dir jelgenerátor lehetne...holnap este. Akinek van kedve, az addig átnézheti addig az ATTiny13 adatlapját. Ez is 8 lábú, mint az NE555 és ehhez sem kell több külső alkatrész.
AtTiny13A

Előzmény: svejk, 2009-03-02 16:10:00 [11]


KisKZ | 6454    2009-03-02 17:35:00 [19]

Szerintem nagyon sokan megköszönnék.
Nekem sajnos nagyon lassan mennek az egyéb dolgaim. Fel kellett állítanom a prioritásokat mert különben elveszek a sokminden között. Az első a kis bútorlap gép.
Így az elektronika kissé hátraszorult.
De ha időm engedi szívesen olvasok.
Ezt is, azt is. hátha sikerül felvennem az egész hangulatát.
A kezdő anyag nagyon csábítóan hangzik.
Még PIC-em is van valahol.

Előzmény: HobbyCNC, 2009-03-02 17:26:00 [17]


rekalaca | 536    2009-03-02 17:29:00 [18]

Először az alapokat megtanulni. Analóg (ebből a komparátor, ablakkomparátor érdekelne),és digitális kapcsolásokat építgetek diszkrét áramkörökből,ezeket szeretném programozással megoldani.

Előzmény: elektron, 2009-03-02 15:41:00 [10]


HobbyCNC | 5110    2009-03-02 17:26:00 [17]

Mármint tegyem fel és linkeljem be?

Előzmény: KisKZ, 2009-03-02 17:25:00 [16]


KisKZ | 6454    2009-03-02 17:25:00 [16]

Megköszönnénk István.
Soha nem lehet tudni, hova keveredik az ember.

Előzmény: HobbyCNC, 2009-03-02 17:20:00 [15]


HobbyCNC | 5110    2009-03-02 17:20:00 [15]

PIC témába tudtam vona segíteni, ráadásul van egy rakat Magyar anyagom is kifejezetten kezdőknek...


rekalaca | 536    2009-03-02 17:17:00 [14]

Én mindig is hangsúlyoztam,hogy kezdő vagyok. Elektron megfogalmazta, egy részét.Van egy PIC-et C-ben profi módon programozó ismerősöm, Ő is elkezdte megismerni. Ha valamelyikőtök elvállalja tanárságot, szívesen beülök hozzá az iskolapadba.

Előzmény: svejk, 2009-03-02 16:10:00 [11]


KisKZ | 6454    2009-03-02 16:35:00 [13]

Azért mert valaki ezt ajánlotta.
A lehetőségei elég szélesek. Biztos jó lesz!
Egyébként nekem, hozzá nem értőnek vonzó volt hogy sok motormeghajtást bemutató videón ezt a boardot használták.

Előzmény: svejk, 2009-03-02 16:10:00 [11]


elektron | 12955    2009-03-02 16:23:00 [12]

Ez az AVR olcsó, gyors, van hozzá ingyenes C fordító, ha más procival kell , át lehet tenni könnyen, van benne AD átalakító PWM-ek, mi kll ettől több ? Engem az angol meg nem izgat, azt ugyaúgy elolvasom, mintha magyar lenne. Amilyen méretű iszonyatos projecteket meg mi csinálni fogunk, azt a 30 soros programot meg lehet írni, a LED pislogtatást meg ilyesmit.

Előzmény: svejk, 2009-03-02 16:10:00 [11]


svejk | 24225    2009-03-02 16:10:00 [11]

Nem akarok ünneprontó lenni, de akkor a fórumtagok küzül nincs senki akinek van gyakorlata az Atmel-ekkel?
Akkor miért nem inkább PIC-eztek?
Ahhoz értenek egy páran, a Házigazda, Sneci, Tatai...
Vagy Sneci, neked megy mindkettő? Valakinek el kellene vállalni egy úgymond (jó értelemben) "nagyokos" szerepet.

Az biztos ugyan hogy a saját keserven megtanultak jobban berögződnek, de azért nem árt a segítség.

A Kónya féle PIC-es könyvek számomra teljesen érthetetlenek, de Cseh Robi irományában is van egy két összevisszaugrás, betudható ez annak hogy lassabban íródott a leírás mint a procik fejlődése.
Én a jól kommentezett, szájbarágós mintapéldákra esküszöm a pár sorostól kezdve, és nagyon fontos hogy döntsetek egy proci mellett még ha már elavultnak számít is, és mindent arra írogatni elejében.
Pl. ATtiny 2313 van vagy 250 Ft...és a 18 láb elég kezdésnek. Mindenféleképp DIP tokost ajánlanék


elektron | 12955    2009-03-02 15:41:00 [10]

Mert te mire gondoltál ? Mit szeretnél csinálni belőle.

Előzmény: rekalaca, 2009-03-02 15:38:00 [9]


rekalaca | 536    2009-03-02 15:38:00 [9]

Kérlek, részletezd, hogy melyik procira gondoltál,és milyen kiegészítő alkatrészek kellenek még hozzá.

Előzmény: elektron, 2009-03-02 02:11:00 [6]

Svertel Istvan | 720    2009-03-02 06:46:00 [8]

Ez Sneci-nek szólt !

Előzmény: Svertel Istvan, 2009-03-02 06:45:00 [7]


Svertel Istvan | 720    2009-03-02 06:45:00 [7]


elektron | 12955    2009-03-02 02:11:00 [6]

Na gyorsan hozzászólok, még nem sok van, hogy én is úttörő lehessek, mint régen. Én C-ben vagyok képben, kezdetnek jó lenne egy ATMega8 procival is kezdeni, van egy LPT portos féle programozási lehetősége, ami, kijön vagy párszáz forintból, azt akar nám megcsinálni először, csak kellene hozzá proci, ha valakinek már van otthon DIL tokozású ATMega8 valami kis levélben küldhetne vagy kettőt, panelt azt tudok csinálni, vissza is tudok küldeni, meg ha kell valakinek. C-ben is tudok programba hozzászólni, meg össze lehet szépen rakni valami kis projectet.

Nem kell félni a C-től, nem harap az. Csak elsőre szokatlannak tűnik valamelyest, mert túl tömör a jelhasználat miatt. Pár dolgot kell benne megérteni, ami valójában nem is túl sok, utánna élvezet használni. Azonkívül pár jól megírt osztálya sewgítségével a programok is egész egyszerűek lehetnek.

#include <magyar.h> // magyar kulcsszavak használata

főprogram (egész a, egész b) eleje
egész c;

c = a+b;
Írd_ki_LCD_re(c);

vége

Vagy kinek, hogyan tetszik, ha például nem szeret angolozni.





KisKZ | 6454    2009-03-02 00:03:00 [5]

Igérem ha AVR kérdésem lesz (ha odajutok végre egyszer) már itt leszek veletek.


sneci | 1763    2009-03-01 22:01:00 [4]

Ne szomorkodj, hogy nem tudod minek a rövidítése az AVR, mert akik csinálták ezt mikrokontrollert, azok nem árulták el az AVR jelentését

De komolyra fordítva, az AVR családot 4 csoportra szokás osztani:
1) TinyAVR: 1-8kB program, korlátozott periféria készlet, 8-32 lábú tokozás
2) MegaAVR: 4-256kB program, bővebb priféria készlet, bővebb utasításkészlet (szorzás), 24-100 lábú tokozás
3) XMegaAVR: 16-384kB program, 44-100 lábú tokozás, DMA, esemény kezelés, titkosítási algoritmusok, DAC
4) Alkalmazás specifikus AVR: AVR mikrokontroller FPGA-val egybeépítve,...

A fejlesztést az Atmel ingyenes eszközökkel támogatja, úgymint assembler, C fordító program.
Aki Basic-ben jártasabb, annak én is Cseh Róbert honlapját ajánlom, aki példaértékű közösséget hozott össze, népszerűsítve a Bascom-ra alapozott fejlesztést. A Bascom egy Basic fordító program AVR-re, bizonyos programméretig ingyenes. Robi szerkesztésében magyar nyelvű dokumentáció is hozzáférhető a Bascom-hoz. Ugyancsak itt kapható mindenféle kit és készre szerelt panel, ami az induláshoz szükséges.

Előzmény: Svertel Istvan, 2009-03-01 21:05:00 [2]


rekalaca | 536    2009-03-01 21:38:00 [3]

Bővebben itt találsz rá információt, én csak kezdőként szerettem volna itt lenni.
http://avr.tavir.hu/modules.php?name=Content&pa=showpage&pid=97

Előzmény: Svertel Istvan, 2009-03-01 21:05:00 [2]


Svertel Istvan | 720    2009-03-01 21:05:00 [2]

Hogy minek a rövidítése az AVR azt nem tudom , de azt tudom hogy az "ATMEL"-nek a programozhazó mikrokontrollerek családja (mint a "MICROCHIP"-nek a PIC-jei) .


rekalaca | 536    2009-03-01 20:36:00 [1]

Megkérek mindenkit, akit az AVR programozása érdekel KisKZ-ét, Elektront, mindenkit aki segíteni tud és akar, ezt a témát itt folytassuk


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

Időrend:
Oldal 24 / 24 Ugrás ide:
|◄ Első  ◄ Előző  20 21 22 23 24