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
Sziasztok. Most ismerkedem az USBasp programozó használatával. A programozó driverét sikeresen feltelepítettem. AVR studio 4-el szeretném használni, de sajnos képtelen vagyok connectelni a programozót. Tudnátok segíteni a probléma megoldásában ? köszönöm
Hol olvastad,hogy a studio-val működik ? Esetleg external tool-ként.
Az előző oldal itt a fórumban: Avr dude+GUI
Sziasztok!
Egy enkódert próbálok működésre bírni Xmega128A3 mikrokontroller segítségével. A beépített kvadratúra dekódert próbálom alkalmazni. Beállítások után úgy tűnik, hogy működik is a dolog, de akadtak apróbb hibák, amik nem hagynak nyugodni... Az enkóder 2 lába az A port 6-os és 7-es lábára csatlakoznak. Forgatáskor egy lcd-n olvashatom le a számláló adott értékét, azonban a leírások által megadott 4-es lépések helyett nekem csak 2-vel növeli vagy csökkenti a számláló értékét, emellett a számlálás iránya is fordítva van (fordított bekötés miatt). Ha megcserélem az "event" bemeneten a lábat (6-ról, 7-es lábra), azaz a másik lábról szeretném vezérelni azt, akkor nem működik a számlálás. Lassú tekerésnél látom, hogy egyet ugrik a számláló, de azután vissza is ugrik egyet... Az enkóder inicializálása:
Az érték kiírása:
Valakinek van valami ötlete, hogy mi okozhatja ezt a jelenséget? Köszönöm!
Közben az egyik kérdésemre megtaláltam a választ:
A mikrokontroller leírásában kicsit elrejtve benne van, hogy az enkóder kimeneteit a mikrokontroller egymás után következő bemeneteire kell csatlakoztatni és az eseménykezelő triggerét az első bemenetre kell állítani. Értelemszerűen ha a következő bemenetre állítjuk a trigger forrást, akkor már nem fog működni a dekóder. A másik problémám viszont még mindig fennáll.
Mivel a hsz.edből, nem derült ki, hogy tulajdonlépen miről is van szó!
Ha csatolnál, 1 linket lehet még választ is kapnál! ![]()
A titkos Atmegax8PB típus
A napokban temettem el a 7 éves SSD-met, ezért új telepítés következett Atmel Studio 6-ból is, így esett a választás a friss 6.2-re, amiben észrevettem az ATmegax8PB típust. Érdekesség, hogy PB-s adatlap van az atmel oldalán, de se errata, se migration guide, se changes, se semmi doksi nem található róla, miben másabb a PB a PA-tól. Első ránézésre az adatlap is egyforma, műszaki adatai sem térnek el komolyabban. Kivéve kettőt, a fogyasztási adatok (és van PORTE), ami meglepetésemre nem jobbak, hanem jóval rosszabbak lettek (PB vs PA). 1.8V @ 1MHz Active: 0.35mA vs. 0.2mA Power down: 0.4uA vs. 0.1uA Power save: <1uA vs. 0,75uA Ha bárki talált már infót ami részletezné a PB altípust, ossza meg velem legyen kedves. A hozzászólás módosítva: Nov 15, 2014
Erről lenne szó: Using the XMEGA Quadrature Decoder
A problémám pedig lényegében az, hogy az enkóder elfordulását követő számlálónak egy "kattanásnyi" elfordulásakor 4-el kellene csökkennie vagy növekedni, viszont nálam csak 2-vel változik.
Szerintem a múltkor jött erről infó valamelyik hírlevelükben. Ha érdekel előtúrom.
A hozzászólás módosítva: Nov 16, 2014
Ha könnyen megtalálható, akkor szívesen vennék pár idevonatkozó sort, de nem sem dől össze a világ, gondolom előbb-utóbb hírlevélen kívül doksiban is tudatják majd.
Igazából csak azért keltette fel az érdeklődésemet, mert ~ 30 széria gyártásban lévő fejlesztésem használja ezt a procit, havi 5-600 db fölött fogy csak pl. ATmega48PA-ból aztán hátha olcsóbb/jobb lesz és cserélhető.
No kiderült, hogy nem a hírlevélben volt hanem a CNX-en és nem Xmega, hanem csak sima megáról szólt. Összekevertem, bocs.
Sziasztok!
Szeretnék egy kis segítséget kérni Tőletek ha lehet! Megépítettem ezt az órát, annyi gond van vele, hogy nem reagál a nyomógombokra és az óra is 00:00:80-át jelez ki bekapcsoláskor. Csak akkor hajlandó járni ha beállítom a DS1307-ben az időt/pót elemmel egy másik órában/ s úgy rakom be, így megy az óra, de a gombokra így sem reagál. Felraknám a programját én sajnos nem értek hozzá de Ti biztos tudtok rá megoldást. Nagyon szépen köszönöm előre is!!!!
A gombokhoz felhúzó ellenállást mindenképp kellene tenni.
Nem feltétlenül, hiszen be lehet kapcsolni a felhúzó ellenállásokat, és a programozó ezt meg is tette a "LedBoard_8x48_define.h" fájlban a
Ja igen, tényleg, bocsi.
Szia !
Szerintem ez a program még nincsen készen. A LedBoard_8x48_subroutines.h fájlban megírta a programozó a
Nyomógomb kezelést megírta a LedBoard_8x48_interrupt.h fájlban a BtnGet() fv-ben, amit hívogat is a Timer2 interruptból és a BtnMask változóba el is rakja a lenyomásokról az információt, de a főprogramban csak 1 üres while ciklus van, alatta kikommentezett egy kódrészletet.
Itt kellene egy menü szerűséget megírni és onnan meghívni a DS1307 beállító és egyéb rutinokat.
Sziasztok!
Hosszabb buszra lenne szükségem (20 méter) differenciál jelvezetékkel a zavarszűrés miatt. Erre csatlakoztatnék egy pár AVR procit. Nem baj a half-duplex kommunikáció. UART protokol előnyben mivel ez (is) található az AVR procikban. Eddig a szimulátorral erre jutottam (csatolom). Hasonlít a CANBUS jelhez viszont UART protokollal. Érdemes ezt megépíteni vagy jobban járok egy canbus transceiver ic-vel? (pl MCP 2551)
Köszönöm a választ!!
Csak az a baj, hogy ez már tényleg meghaladja a tudásom. Valaki meg tudná esetleg csinálni ezt?? Akkor már teljesen kész lenne ez az óra. Köszönöm!
Szia!
Miért is nem lenne jó a normál RS485 a feladathoz? Adó/vevő IC filléres dolog, kiforrott. Ütközés várható a buszon? (mert akkor CAN vagy LIN kellene). 75176 kicsit sokat eszik, de LTC485 vagy Analog Devices IC-je alig.
Igen jó lenne, pont tegnap előtt rendeltem és most 4 ic-t nem akarok rendelni megint külön.
Megnézem differenciál vezeték nélkül, jel test half-duplex UART a TX diódával leválasztva, közösítve RX+TX és ellenállással tápra húzva. Ha ez nem jön be, vagy nem lesz stabil akkor az LTC485 lesz a nyerő. Köszönöm! Üdv!
Üdv !
C-ben hogy lehet megoldani ezt az indirekt ugrást ?
Fuggvenypointerrel:
Végül ez a megoldás nem is került tesztelés alá sem.
Én sem fűztem hozzá sok reményt. Sikerült szereznem SN75176 -os ic-t. Ennek a busz kimenetére miért is kellenek az ellenállások? Mind 2 végére 120 ohm-ot láttam szinte mindenhol. A buszra csatlakozó vevőknek nem lesz elég belső ellenállásuk hogy ne okozzon problémát az ellenállás hiánya? Nem akarnám terhelni a kimenetét feleslegesen ezért kérdezem. Továbbá szerencsés-e ha a kimenet védelméért zénereket teszek a kimenetre és egy pár ohmos ellenállást sorosan? A hozzászólás módosítva: Nov 19, 2014
Érdeklődnék még hogy ha véletlen ütközés keletkezik (fejlesztés során nem kizárt
![]() Az adatátvitelhez közösnek kell lenni a GND-nek? (3 vezeték kell a kommunikációhoz?) Bocsásatok meg a rengeteg kérdésért de új vagyok ebben a fajta kommuunikációs témában.
Egy olyan feladatot tervezek megoldani, hogy egy léptetömotort egy fordulaton belül 24 elméleti állásba kell megállitani. ( nem biztos, hogy valamennyibe, de többe nem).
Az állást egy-egy LED jelezné ki egy kör peremén. Mellettük 1-1 nyomogomb megnyomására fordulna a motor a kivánt állásba. Egy két részletkérdésre keresek még választ. 1. Hogyan döntsem el, hogy mikor merre forduljon a motor ( jobbra-balra) - elvben lehetne mindig a rövidebb utat választani, de 2. Igény van 180 fokos fordulatra, azaz ha az adott álláshoz a szemben levö gombot nyomom meg akkor 180 fokkal kell a motornak fordulnia. Ebben a fázisban nem tervezek visszajelzést, azaz a motor kizárolag a kapott impulzusokra reagál, ami viszont igényli a bekapcsolás utáni szinkronizálást, azaz a motor állását összehangolni a LED kijelzö állásával. Ötletek? Kösz
Ezek közvetlen busz-meghajtó IC-k, nem kell a zener védelem, továbbá az ellenállás amit említettél impedancia illesztésre szolgál, hogy a jel visszaverődést megakadályozzák a vezetékekben.
Bővebben: Link Arra viszont figyelj, hogy egyszerre ne adjon a két oldal (token)! A hozzászólás módosítva: Nov 20, 2014
A leg egyszerűbb, ha indulás után megnyomatod a felhasználóval azt a gombot ahol ál a motor.
Vagy felruházhatod a rendszert opto kapukkal, mágneses Red relékkel, mikrokapcsolókkal. A leg rosszabb esetben mindig eltárolod, hogy éppen hol állt meg a léptető motorod.
Erre én is gondoltam, de van egy kis bibi, a motor természetesen nem 24 lépésben fordul 360 fokot, hanem ennek a sokszorosával, igy ha ki van kapcsolva bárhol megállhat, vagy kézzel bárhova fordithato. Valoszinü, hogy be kell épiteni egy referenciapontot, amire a bekapcsoláskor fordul (megkeresi) majd itt szinkronizálja magát (ez lehet pl. a 0 állás).
|
Bejelentkezés
Hirdetés |