Fórum témák
» Több friss téma |
Fórum » Bascom-AVR
Nem, nem haldoklik
A Bascom is fut - csak kicsit háttérbe szorult. Vár itt a 4 hozzászólással korábbi bejegyzés 2013 Ennél a TavIR is frissebb! (És ott fel se tetted a kérdést.... ) A Config Clock=soft estén a belső Timert (Tosc1/2) használja. Azaz ide elvárna egy 32768-as kvarcot. A config clock=user esetén alapértelmezetten a külső I2C buszos RTC az óraforrás és ebből megy a belső Timer$/date$ függvények. Mert a file egyik jellemzője a létrehozás/módosítás dátuma! Ha nincs külső I2C RTC, akkor a órafüggvényed érdekes dátumokkal fog operálni... Fontos! Az AVR-Dos - ha üzletszerűen használod (pénzt kérsz érte), akkor külön licenszdíjas a Bascomtól! Ezért lett a KokkeFAT (az a Bascom része és a Bascommal megvetted a használati jogot is hozzá!). A hozzászólás módosítva: Szept 6, 2015
Feltettem volna a kérdést, de reggel, ment a fórum délbe meg már nem. Egészen estig vagy másnapig!
Hát most semmi sem ad dátumot meg időt a fájloknak az biztos. De mivel ez egy prototípus amiben használom még úgy is átdolgozásra kerül, most jó ez így. Nem fogok kereskedni az AVR-Dos-al. Nézegettem ezt a KokkeFAT-ot is, de nem sok infót(példa programot) találtam róla. Igaz az AVR-Dos is még rejtély, de csak kibogozom. A tavir fórum mostan sem megy. Szerezzek egy jó szervert? A hozzászólás módosítva: Szept 6, 2015
A hiba feléd van. A fórum megy.
A kiesés az ~1.5 óra volt 4 napja egy hibás .htaccess beállítás miatt. A böngésző cache az ami betárolhatott hibás átirányítást a forum.tavir.hu -> www.forum.tavir.hu módon. A Bascom Examples alatt sok minta van AVRDOS és KOKKEFAT esetére is (ez utóbbi nekem is kicsit átláthatatlanabb....)
Eddig a Bascom alatt mindig az STK200 zal programoztam, most áttértem bootloaderre 115200 baud- on sokkal gyorsabb mint az SPI programozás.
Egy olyan kérdésem lenne hogy hogyan lehetne olyan eszközt készíteni ami az sd kártyára tett .bin fájlt rakja fel (ez is Bascom-mal megírva persze) a bootloaderrel rendelkező eszközre ami távol van PC től vagy legalább is nincs rajta Bascom.
A legegyszerűbb:
www.mcselec.com -> Fórum SD + firmware a kulcsszó. Minimum Mega64/128 kell hozá (SRAM méret miatt)
Köszi megnézem.
Emlékszel írtam a múltkor sikerült külső RAM-mal ATMEGA162-vel, 11059200Hz kristály, SD kártyát kezelni? A hozzászólás módosítva: Okt 28, 2015
Erre én is kiváncsi lennék! Valami kapcsolás vagy kód publikus?
Kapcsolás:
XRAM SD kártya a kontrollerhez csatlakoztatása: SD ATMEGA
Van egy XMEGA128A3U kontrollerem de régóta nem tudtam vele ismerkedni, építettem egy MK-II programozót de csak az AVR studio-val tudtam használni, Bascom alatt nem sikerült összehozni, ráadásul az egyik gépemen úgy szétesett az AVRStudio hogy az újratelepítéssel sem lett jó, valami dll hiányzott. A Bootloader nem sikerült a flip-pel az USB-n keresztül szintén, de sok fejtörést okozott a soros bootloader mire működött mert az Xmega lábkiosztása nem egyértelmű vagy hibásan volt jelölve, alig találok a net-en egy hivatalos egyértelmű lábkiosztást.
Sziasztok.
Elkezdtem pár hete egy konkrét projekt kapcsán az avr-ekkel foglalkozni, sajnos viszont a projekt a napokban égetővé vált mivel az először elkészített "relés" vezérlés haldoklik. A gép leírása egyszerű: két munkahenger kellene vezérelni a munkahengereken lévő négy végálláskapcsoló, illetve egy startgomb állapota alapján. Eddig Do-Loop ciklusokkal próbálkoztam de sehogy sem tudom elérni. hogy csak akkor lépjen tovább ha az adott esemény bekövetkezik, vagyis amikor az adott végálláskapcsoló magasra vált, addig pedig várakozzon. Tudom, hogy tanulnom kellene de az idő sürget, de ha ezen a projekten túl vagyok akkor rá fogok hasalni és tanulom a programozást. Tudna valaki segíteni?
Írsz a do loop cikluson belül, minden eseményhez, amikor történnie kell valaminek, egy if-then elágazást, ha egyik állapot sem teljesül nem csinál semmit, ujrakezdi. Ha részletesen leírod hogyan kell működnie, konkrétabban is tudunk segíteni.
Bemásolom amit eddig összehoztam:
------------------------------------------------------------------------------- $regfile = "m328pdef.dat" ' used micro $crystal = 8000000 ' used xtal Config Clockdiv = 1 ' either use this or change the divider fuse byte '------------------------------------------------------------------------------- Config Portd = Output 1y1 Alias Portd.2 ' 1y2 Alias Portd.3 ' 2y Alias Portd.4 ' Config Portb = Input Indit Alias Pinb.0 'Startgomb Tomkez Alias Pinb.1 'Tomohenger alapallas Tomveg Alias Pinb.2 'Tomohenger végallas Tarkez Alias Pinb.3 'Tartályhenger alapallas Tarveg Alias Pinb.4 'Tartalyhenger vegallas Do If Indit = 1 Then 'ciklus indítása Set 1y1 Set 2y End If If Tomveg = 1 Then 'Tömöhenger végállásban Reset 1y1 Reset 2y Set 1y2 End If If Tarkez = 1 Then 'Tartály kinyitva Set 2y End If If Tomkez = 1 Then 'Tömöhenger alapállásban Reset 2y Reset 1y2 Set 1y1 End If If Tarveg = 1 Then 'Tartály bezárva = alapállás Reset 1y1 End If Loop End
Kezdetben 0 értéket kellene adni a kimeneteknek.Azzal hogy inputként definiáltad a bemeneteket bekapcsolja a felhúzó ellenállásokat (de illik külső ellenállással is valahova húzni), ezért inkább 0 értéket szoktak figyelni( a végálláskapcsoló a 0v-ot kapcsolja) és legalább egy 100ms os várakozással pergésmentesíteni kellene a bemeneteket.Ha nem teljesül semmilyen feltétel nem kellene csinálnia semmit.
Próbálkozz lépéslánccal, itt egy minta
Az előző felállás szerint nekem ha nem teljesült a feltétel, akkor továbblép a következőre.
Közben fejlődtem egy kicsit:
ez már azt teszi amit szeretnék, csak épp a kimeneteket addig nem vezérli amíg a bemenet állapota magas. A nulla értéket kapcsoni, ezzel arra gondolsz, hogy húzzam fel vcc-re a bemeneteket, a kapcsolót pedig testre zárjam? A pergésmentesítés pedig csak ennyi, hogy beteszek egy 100ms-os várakozást? Leírnád hogy a semmilyen feltétel nem teljesül akkor ne csináljon semmit ezt hogy tudom megvalósítani?
Miért baj ha továbblép a következőre? Valahova húzd 10K-val, ha már megvan a rendszer és az 5v-ot kapcsolja akkor húzd a földre, de elterjedtebb a kapcsolót a földre zárni.
Ha a kimenetek le vannak kapcsolva és egyik feltétel sem teljesül akkor kikapcsolva is maradnak.
Azért gond mert ezek a folyamatoknak sorban kell következnie, és nem lehet kihagyni egyiket sem mert akkor összekavarodik a rendszer, viszont csak akkor indulhat a következő ha az előző teljesült és ezt a végálláskapcsoló nyugtázta.
A rendszer még nincs meg, az még ezután következik, úgyhogy mivel szeretnék a "nagyokhoz" hasonlítani megfordítom mindenképp. Mára szerintem feladom, köszönöm mindenkinek a segítséget.
Az rendben van, hogy sorban kell következnie, de a végálláskapcsolók állása meghatározza mi következhet, de lehet hogy nem értem a rendszert, ha magát a gépezet működését leírnád nem beszélnénk el egymás mellett. Az én elgondolásom szerint a program folyamatosan pásztázza az 5 kapcsolót és azok állapota alapján indít egy folyamatot. Az if-then hez tartozhatnak még: és, vagy feltételek is, amikkel nagyobb biztonság adható. A 100ms arra elég ha azalatt lecseng a prellegés akkor addig nem ér ugyan oda a program. Tökéletesebb megoldás minden kapcsolóhoz egy bit változót rendelni amit kapcsoláskor bebillent és a lecsengés után visszabillentünk.
Kicsit nehéz lessz de megpróbálom: ez egy tömőgép ami úgy néz k hogy van egy munkahenger ami egy tömőhengert mozgat, és van egy másik ami a tömőhenger feletti tartályt nyitja-zárja. A folyamat a következő: alapállapotba a henger feltöltve,
-start impulzus után a tömőhenger kimegy (a masszát a tömőcsőbe nyomja) -tartály kinyit -tömőhenger visszamegy alapállapotba és közben beszívja a masszát -tartály elzár -start impulzusra vár Most már kezdem látni igazad van, pásztázhat bátran, átírtam magamnak nightlife által javasolt léptetőregiszteres progit, és nagyon jó lett elsőre. Szépen megy sorba hiába érkezik másik impulzus csak a sorba következőre megy tovább stb. Most már csak a pergésmentesítést kell megoldanom, az alaphelyzetbe állást, és a bemenetek megfelelő felhúzását, illetve van még egy kis apróság, hogy csak akkor kapcsolja a kimenetet amikor magasból alacsonyba vált a végálláskapcsoló, de ez lehet hogy csak a nem megfelelő bemeneti beállítások miatt van vagy csak a szimulátor miatt. A hétvégén elvileg sikerül hardveresen is kipróbálni.
Sziasztok!
Bascomban probálnék Modbus RTU üzeneteket küldeni. RS 232-n Pl. : (Hex) "01 03 04 00 00 03 E8 FA 8D" Ha a PRINT után beírom akkor az ugye ASCII karaktereknek veszi, és az nem jó. Mi ennek a helyes módja, szintaktikája? Ha valaki ezt az egy sort leírná, megköszönném.
bascom help
Ez kell neked szerintem : )
Üdv!
Ez "csak" átváltja a hex-et dec-re szerintem, bár ebben a sorban Print L ; Spc(3) ; Hex(l) nem tudom mi az spc meg a hex. Átváltani nem probléma, de az RTU-ban a megfelelő tagolással két helyiértékű hex-eket kell kapnia a vevő készüléknek. Mit kell írni a PRINT után ha azt szeretnénk, hogy a másik oldalon pl. ezt kapjuk: 01 03 04 00 00 03 E8 FA 8D Köszi.
Megnéztem, de szerintem ez minimum a fordítottját csinálja ha igaz, hogy azonos a Print chr( ) -el. Ezt használom arra, ha olyan karaktert akarok nyomtatni, Pl hőnyomtatón amilyen billentyűm nincs.
Az a baj, hogy addig nem akarok egy PLC venni amíg nem vagyok biztos benne, hogy tudok majd vele kommunikálni, így sajnos csak kérdezgetek kipróbálni nem tudom...
Szia!
A Hex(A) az 'A' értékét küldi ki hex-ként. Az értékmegadás lehet hex, dec (C), vagy akár bináris is. Az Spc(x) megadott számú Space-t illeszt be.
Szia!
Ez jónak néz ki, nagyon köszönöm! Gondolom, egy tömb elemei is lehetnek, ABC? És ha a választ egy tömbben szeretném tárolni, arra is tudnál esetleg egy példasort, de már ez is nagyon nagy segítség...
Szevasztok!
Most ismerkedem az AVR -el, meg a Bascom -al. Nem igazán jött össze eddig. Bepötyögtem a neten talált néhány sort: $regfile = "attiny2313.dat" $crystal = 4000000 Config Portd = Output Do Portd = 250 Waitms 250 Portd = 0 Waitms 250 Loop A fordítás sikerült, meg ahogy meg tudom ítélni az AVR -be is sikerült betölteni a programot, de mégsem villog a led. Mit cseszhettem el? Köszi.
Melyik lábon van a LED?
Belső, vagy külső oszcillátort használsz, fuse bitek rendben?
Kipróbáltam az összes d-lábára a ledet.
Egy 4 Mhz kristályt tettem az avr 4 es 5 ös lábára, meg kondenzátorokat és azt testre. Mit kell az alatt érteni, hogy rendben vannak -e a fuse bitek? Tudom törölni az AVR tartalmát, meg újra írni. Mire kell figyelnem fusebit ügyben? |
Bejelentkezés
Hirdetés |