Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
A helyzet árnyaltabb. Rengeteg féle kontrollert kell programoznom, ill. a vezérlőtől (PLC) függően a felhasználói programot egy fix memóriába égetnem. Ez általában EEPROM, vagy flash. A cégnek nincs a 200 féle uc-hez írója, assemblere, debugja stb. Helyette vagyok én, akinek meg kell oldani a feladatot. A ciki az, hogy már a hétvégeken is a céges ATR-eket kell nyomatom a gyerekszobában. Meg a hardvert hozzá, mert ha nincs elég időm kitökölni a szoftvert, akkor megoldom hardveresen. Aztán a jön a következő ipari robot, aminek nem megy pl. a szenzorrendszere, megállapítom, hogy elszállt a controller, vagy sérült a program (hegesztőrobotoknál gyakran előfordul a nagy áramlökések miatt). ...és kezdődik előről az egész. Na megyek melózni...
Ez igen!
Mikor lesz toborzás? Én egy ilyen helyet képzeltem el magamnak, mint munkahely. Bár egyelőre a legbonyolultabb szerkezeteim egy saját tervezésű és készítésű induktivitásmérő, CNC vezérlő, távirányítós kapu és egy mikró vezérlőpanele voltak...
Műszakos meló, nem leányálom, mert időre kell mindennek kész lenni. Én is itthagynám, csak itt a környéken 0 munkalehetőség van ilyen magamfajta nyákolónak. A törlesztést (55 qm) meg fizetni kell.
sziasztok!
a következő kérdésem lenne ATtiny2313 -at használok az a problémám hogy main függvényből meghívva a display funkció működik de a timer0 ISR fűggvényéből nem hívódik meg ezt mi okozhatja? itt a forrás:
volatile előtag hiányzik a funkció deklarálásánál. Ugyancsak hiányzik a volatile előtag a megszakításban használ változók deklarálásánál. Amúgy meg nem javaslom, hogy a megszakításból hosszabb program részeket hívjál meg. Garantáltan bele fogsz ütközni a túl sokáig tartó megszakítás problémájába. Természetesen nem lehetetlen hosszú ideig tartó megszakítások írása, de komoly tervezést igényel a késeltetések miatt.
Helló!
Azt szeretném kérdezni, hogy feltételben hogyan vizsgálhatom azt, hogy a gomb nyomva van?
A segítséget köszönöm.
Üdv Sikeresen beindullt az ATmel at89s51 es avr em de a következő lenne kérdésem mivel ez egy kijelző előtt van a kijelzőt rá lehet bírni valamire.?? mert a felső sarokban van 2 ledsor és azt szeretném meg csinállni h ráteszek a kábelekre 2 db hőváltoztatós ellenálást és ahogy nő a hőmérséklet mennek fel a ledek vagy csak világíttani őket..
Funkcio deklaralasnal mit csinal a volatile?
Kössz megtaláltam.
Annyi kérdésem lenne hogy a ! milyen funkciót hajt végre? Esetleg nincsen valami leírás ami ezeket a funkciókat összefoglalja?
Kapcsolasi rajz nelkul korulmenyes lesz....
En a Bascom-51-l jatszanek, sokmindent elfed a chipen belul.... sima set/reset labakkal vegigzongoraznam az egesz chipet....
Abban a feltételben alacsony szintre teljesül az if.
De, csak keresni kell a google-el.
Hát keresésben nem vagyok túl erős de ezentúl majd figyelek. Nem tudom hogy háláljam meg a türelmedet és a segítségedet. Ha esetleg valami eszedbe jut csak szólj.
Még egyszer köszönöm.
Ismerkedem az avr-ekkel, és pwm-mel szeretném egy futófény fényerejét szabályozni. A mellékelt rajz mennyire működőképes? (pb1 a pwm, pb3-5 pedig a tényleges futófény)
Köszönöm a segítséget!
Szia!
Szerintem működőképes, csak a pwm frekvenciája jóval nagyobb legyen mint a futófényé. üdv kajozs
Sziasztok!
Vettem egy Attiny 24-20 procit. Szeretnék vele egy kapcsolást építeni ami egy kódzár lenne. A lényege, hogy a négyjegyű kódot a program futása alatt egy tömb tárolja. Áramszünet esetén azonban ez a kód ha jól tudom elszállna és a 4 elemű tömböt nullákkal töltené fel alapértelmezésként, ami nem éppen elegáns megoldás. Ezért a proci eeprom-jában szeretném ezt tárolni amivel minden induláskor még az elején feltöltené a tömböt(normál esetben évente max. 1-2 történne ez meg csak mikor elmegy az áram). Hogyan lehetne ezt a legegyszerűbben megoldani? Majd böngészem az adatlap eeprom-ról szóló részét is de egy kis segítség elkélne mert azután könnyebben érthető. Köszi szépen!
Nem jó az elképzelés.
T1, T2, T3 közvetlenül a tápra kapcsolt pnp tranzisztorok lehetnének, ez esetben természetesen az emitterük kapcsolódna a tápra, a kollektoraikra kapcsolódna külön külön az R5-LED1, R6-LED2, R7-LED3 fogyasztók. A LED-ek katódjai a rajzodon megegyezően összekötve kapcsolódnának a T4 ( npn ) kollektorára, aminek emittere a testre dolgozik. A másik megoldás, ha mindegyik tranzisztor npn tipusú, akkor a T1,T2,T3 tranzisztorok emitterei lennének összekötve és azok kapcsolódnának a T4 kollektorához. Az R-LED fogyasztók pedig a táp és a T1-T3 tranzisztorok kollektorai közé sorakoznának. A rajzod szerint érdekes lenne a működés. Ha T4 nyitott ( tehát vezet, akkor azon marad kb 0,4V. A LED1 nyitófeszültsége 1,4V ( piros esetén ). T1 bázis emitter nyitófeszültsége 0,7V. T1 bázisára tehát legalább 0,4+1,4+0,7 = 2,5V-ot kell kapcsolnod, hogy vezessen, de ez csak egy adott munkapontban lenne igaz és csak piros led-del. Ha mondjuk KÉK ledet szeretnél üzemeltetni, annak nyitófeszültsége már 3-5V és valószínűleg nem viágítanának, mivel 0,4+4+0,7 = 5,1V, ami nem éri el a tranzisztor nyitásához szükséges feszültséget. Bipoláris tranzisztoroknál, ha kapcsolóként használod, általános szabály, hogy NPN tranzisztor emitter lába a GND-re PNP tranzisztor emitter lába a +5V-ra van kötve,így biztosíthatod, hogy a tranzisztor telítésbe legyen vezérlelve.
Igazad van, elnéztem énis.
Valamiért ennek néztem , és ezért irtam, hogy működhet: Idézet: „A másik megoldás, ha mindegyik tranzisztor npn tipusú, akkor a T1,T2,T3 tranzisztorok emitterei lennének összekötve és azok kapcsolódnának a T4 kollektorához. Az R-LED fogyasztók pedig a táp és a T1-T3 tranzisztorok kollektorai közé sorakoznának.”
Heló!
Azt szeretném megkérdezni, hogy változót hogyan hozhatok létre? Ezt próbáltam: unsigned int i;
Jól csináltad, előjel nélküli int változót így kell deklarálni.
És ha jól tudom a main elé kell tenni a változó deklarálását vagy netán tévedek? Mert olyant ír ki a fordító, hogy:
warning: operation on változó may be undefined Ez azt jelenti, hogy a változó nincsen definiálva ha jól fordítottam! Mit ronthattam el?
Ékezetes karaktereket nem használhatsz.
Attól függ, hogy kell-e nullázni, vagy valami más értéket adni neki, hogy mire fogod használni.
Hogy őszinte legyek, nem igazán látom a különbséget. Amit írtál példát (kék led, 5V), tulajdonképpen bármilyen elrendezésben kevés a feszültség, hogy mindhárom félvezető kinyisson, ez pedig azt eredményezi, hogy semmikor nem fog a led világítani (az analóg technika soha nem ment igazán)
Egyébként ha jól értem (és a fentieken nagyvonalúan átsiklom ), akkor a pnp tranziszotros a jobb megoldás, mert ott a tranzisztorok közelebb lehetnek a táphoz? Vagy ezekkel a kérdésekkel inkább célozzam meg a kezdő topicot? :zavart2:
Ez furcsa. Teljesen átment, amire gondoltam. Végre sikerült valami nekem is. A mellékelt rajzok pont olyanok, ahogy képzeltem.
Én a PNP-NPN összeállítást tartom jobbnak a tranzisztorok kivezérelhetősége szempontjából, nincs visszacsatolás az elrendezésben. Persze ez az elrendezés akkor fog működni, ha csak egy tápod van, két vezetékkel táplálod a rendszert ( GND, Vcc ). Itt úgy kell számolnod, hogy a LED-ek nyitófeszültsége + 2*0,4V ne legyen nagyobb, mint a tápfesz, különben nem fog világítani a LED. Elsőre sem értettem amúgy a negyedik tranzisztor feladatát. Feltételezem, hogy a PWM jelet kapcsolnád rá, miközben a másik három tranzisztor adná, hogy a három közül melyik LED világítson. Én egy kicsit a helyedben gyúrnék a szofveren ( nem sokból tart ) és elhagynám a negyedik tranzisztort. Ha csak a három tranzisztor lenne, akkor három NPN tranzisztorral úgy is működhet a kapcsolásod, hogy a LED-ek nagyobb tápot kapnak, mint a vezérlőegység, tehát függetleníteni lehetne a vezérlés tápját a teljesítményelemek tápjától. Ilyenkor a GND közös. Ezzel a megoldással akár kék LED-eket is meg lehet hajtani. És abban teljesen igazad van, hogy a kérdés nem teljesen ide tartozik, mivel ez általában bármilyen vezérlőnél előforduló kérdés, hogy hogyan illesszük a vezérlőhöz a teljesítmény részeket.
A változó deklarálását ( létrehozását ) teheted a main() függvény elé, illetve a main() függvény belsejébe is.
Ha elé teszed, akkor globális lesz, a teljes programon belül bármelyik függvényből hivatkozhatsz rá. Ha a main() függvényen belül hozod létre, akkor csak azon belül hivatkozhatsz rá, másik függvényben ismretlen változó lesz.
Hello mindenkinek! Az lenne a kérdésem (tudom hogy már iszonyatosan unalmas, de nincs más ötletem ahol megkérdezhetném):ide felraktam az STK200-as programozót bekötéssel és az lenne a lényeg, hogy jó-e így?
Amúgy a 3,3V egy tapasztalt embertől (fött.tojas) jött. A másik kérdés, pedig az hogy ha én például kihagyom az ellenállásokat vagy 3,3V helyett más feszültséget adok (5V alatt), akkor tehetek valami kárt a PC-ben vagy az IC-ben? Nagyon várom a válaszokat, mert itt ülök kezemben az avr-el és nem mertek semmit csinálni, nehogy elcsesszek valamit.....
Örülök, hogy örömet okozhattam
A tranzisztoros kérdéssel átvonulok a kezdőkhöz, viszont a pwm-mell kapcsolatban azért megjegyezném, hogy nem igazán értek veled egyet. Miért írnék saját megoldást, amikor az avr-ben ezt már lekódolták, és működik? Nyilván lehetnek olyan esetek, amikor valamilyen szempontból nem optimális a működése (vagy pl meg kell spórolni a plusz tranzisztort), akkor érdemes lehet a megírásán gondolkozni, de az esetek nagy részében szerintem a gyári megoldás használható (és használandó).
Helló!
Sikerült!! Már nem ír hibát. Az volt a baj hogy rosszul használtam a változót. Most már szépen fut a program. Köszönöm az eddigi segítséget de szerintem még sokszor szükségem lesz rátok.
Bocsi ha bunkónak és 'erőszakosnak' tűnök, de valaki legyen szíves válaszolni..... :bummafejbe:
|
Bejelentkezés
Hirdetés |