Fórum témák

» Több friss téma
Fórum » Bascom-AVR
 
Témaindító: puli122, idő: Ápr 11, 2010
Lapozás: OK   10 / 18
(#) TavIR-AVR válasza gerry hozzászólására (») Szept 6, 2015 /
 
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
(#) gerry válasza TavIR-AVR hozzászólására (») 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
(#) TavIR-AVR válasza gerry hozzászólására (») 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....)
(#) GPeti1977 hozzászólása Okt 28, 2015 /
 
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.
(#) TavIR-AVR válasza GPeti1977 hozzászólására (») Okt 28, 2015 /
 
A legegyszerűbb:
www.mcselec.com -> Fórum
SD + firmware a kulcsszó.
Minimum Mega64/128 kell hozá (SRAM méret miatt)
(#) GPeti1977 válasza TavIR-AVR hozzászólására (») Okt 28, 2015 /
 
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
(#) gerry válasza GPeti1977 hozzászólására (») Okt 28, 2015 /
 
Erre én is kiváncsi lennék! Valami kapcsolás vagy kód publikus?
(#) GPeti1977 válasza gerry hozzászólására (») Okt 28, 2015 /
 
Kapcsolás:
XRAM
SD kártya a kontrollerhez csatlakoztatása:
SD ATMEGA

  1. $regfile = "m162def.dat"
  2.  
  3. $crystal = 11059200
  4. $hwstack = 128
  5. $swstack = 64
  6. $framesize = 80
  7.  
  8. $default Xram
  9.  
  10.  
  11. $xramstart = &H500
  12.  
  13. $xramsize = &H8000
  14. Config Xram = Enabled ', WaitstateLS=1 , WaitStateHS=1
  15. Config Date = Mdy , Separator = /
  16. Config Clock = Soft
  17. 'The format is MM/DD/YY
  18. Date$ = "02/13/14"
  19. Time$ = "22:20:00"
  20.  
  21.  
  22.  
  23. $include "config_mmc.bas"
  24. $include "CONFIG_AVR-DOS.bas"
  25.  
  26. Dim Btemp1 As Byte
  27. Const Xramdrive = 1
(#) gerry válasza GPeti1977 hozzászólására (») Okt 28, 2015 /
 
Köszönöm!
(#) GPeti1977 hozzászólása Okt 29, 2015 /
 
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.
(#) csendesj hozzászólása Nov 19, 2015 /
 
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?
(#) pont válasza csendesj hozzászólására (») Nov 19, 2015 /
 
Í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.
(#) csendesj hozzászólása Nov 19, 2015 /
 
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
(#) pont válasza csendesj hozzászólására (») Nov 19, 2015 /
 
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.
(#) nightlife válasza csendesj hozzászólására (») Nov 19, 2015 /
 
Próbálkozz lépéslánccal, itt egy minta
  1. Dim Lepes As Byte
  2. Do
  3. If Indit = 1 And Lepes = 0 Then
  4.  Lepes = 1
  5. End If
  6.  
  7. If Lepes = 1 Then
  8.  Set Ongyujto
  9.  Set Szivas
  10.  Lepes = 2
  11. End If
  12.  
  13. If Lepes = 2 And Meggyulladt = 1 Then
  14.  Reset Ongyujto
  15.  Reset Szivas
  16.  Set Kifuj
  17.  Lepes = 3
  18. End If
  19.  
  20. If Lepes = 3 And Kifujva = 1 Then
  21.  Set Szivas
  22.  Lepes = 4
  23. End If
  24.  
  25. If Lepes = 4 And Cigielszivva = 1 Then
  26.  Lepes = 0
  27. End If
  28. Loop
  29. End
(#) csendesj hozzászólása Nov 19, 2015 /
 
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:

  1. Config Portd = Output
  2. 1y1 Alias Portd.2                                           '
  3. 1y2 Alias Portd.3                                           '
  4. 2y Alias Portd.4                                            '
  5.  
  6. Config Portb = Input
  7. Indit Alias Pinb.0                                          'Startgomb
  8. Tomkez Alias Pinb.1                                         'Tomohenger alapallas
  9. Tomveg Alias Pinb.2                                         'Tomohenger végallas
  10. Tarkez Alias Pinb.3                                         'Tartályhenger alapallas
  11. Tarveg Alias Pinb.4                                         'Tartalyhenger vegallas
  12.  
  13.  
  14.  
  15.  Do
  16.   Eleje1:
  17.    If Indit = 1 Then                                        'ciklus indítása
  18.    Set 1y1
  19.    Set 2y
  20.   Else
  21.    Goto Eleje1
  22.   End If
  23.  
  24.  Eleje2:
  25.   If Tomveg = 1 Then                                       'Tömöhenger végállásban
  26.     Reset 1y1
  27.     Reset 2y
  28.     Set 1y2
  29.    Else
  30.     Goto Eleje2
  31.    End If
  32.  
  33.   Eleje3:
  34.    If Tarkez = 1 Then                                       'Tartály kinyitva
  35.    Set 2y
  36.   Else
  37.    Goto Eleje3
  38.   End If
  39.  
  40.  Eleje4:
  41.   If Tomkez = 1 Then                                       'Tömöhenger alapállásban
  42.     Reset 2y
  43.     Reset 1y2
  44.     Set 1y1
  45.    Else
  46.     Goto Eleje4
  47.    End If
  48.  
  49.   Eleje5:
  50.    If Tarveg = 1 Then                                       'Tartály bezárva = alapállás
  51.    Reset 1y1
  52.   Else
  53.    Goto Eleje5
  54.   End If
  55. Loop
  56.  
  57. End


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?
(#) pont válasza csendesj hozzászólására (») Nov 19, 2015 /
 
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.
(#) csendesj válasza pont hozzászólására (») Nov 19, 2015 /
 
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.
(#) pont válasza csendesj hozzászólására (») Nov 19, 2015 /
 
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.
(#) csendesj válasza pont hozzászólására (») Nov 20, 2015 /
 
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.
(#) pont hozzászólása Jan 4, 2016 /
 
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.
(#) nightlife válasza pont hozzászólására (») Jan 4, 2016 /
 
bascom help
Ez kell neked szerintem : )
(#) pont válasza nightlife hozzászólására (») Jan 5, 2016 /
 
Ü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.
(#) GPeti1977 válasza pont hozzászólására (») Jan 5, 2016 /
 
A printbin utasitást nézd meg.
(#) pont válasza GPeti1977 hozzászólására (») Jan 5, 2016 /
 
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.

  1. $regfile = "m8535.dat"
  2. $crystal = 1000000
  3. Dim T As String * 8
  4. T = "Targonca"
  5.  
  6. Open "comd.1:9600,8,n,1,INVERTED" For Output As #1
  7.  
  8. Print #1 , Chr(27 14)
  9. Print #1 , "Gipsz Jakab" ; T
  10. T = String(1 , 65)
  11. Print #1 , T
  12.  
  13. Print #1 , "SZIA "
  14. Print #1 , Chr(10)
  15.  
  16.  End


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...
(#) Gromit válasza pont hozzászólására (») Jan 5, 2016 / 1
 
Szia!
  1. A = &H01
  2. B = &H03
  3. C = 4
  4. Print Hex(a) ; Spc(1) ; Hex(b) ;Spc(1) ; Hex(c)

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.
(#) pont válasza Gromit hozzászólására (») Jan 5, 2016 /
 
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...
(#) kovacssokadik hozzászólása Jan 22, 2016 /
 
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.
(#) nightlife válasza kovacssokadik hozzászólására (») Jan 22, 2016 /
 
Melyik lábon van a LED?
Belső, vagy külső oszcillátort használsz, fuse bitek rendben?
(#) kovacssokadik válasza nightlife hozzászólására (») Jan 22, 2016 /
 
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?
Következő: »»   10 / 18
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem