Arduino programozás Bascom alól
Arduino programozás Bascom alól
Üdv!
A teljes internetet átbújtam oda-vissza, hogy Bascom alól hogyan lehet Arduino panelen programozni, de az Istennek sem akar összejönni! Arra jutottam, hogy lényegében az összes módszer ugyan azt a metódust használja, így az ezen az oldalon olvasható megoldást másodjára még tüzetesebben is kipróbáltam, de semmi. Még csak az sem jön össze, hogy a batch fájl lefutása ne egy pillanat műve legyen, hanem gombnyomásra lépjen ki.
Az esetemben annyi az eltérés a taviron szereplő példához képest, hogy 328p típusú a mikrovezérlő és COM3-as portra hozta ki a panelt, valamint az arduino programon belül mások az elérési utak. Ezeket át is írtam a bat fájlban, így a következőképpen néz ki most:
=============================
@echo off
echo.
echo AVR-Duino/Arduino uploader for Bascom by AVRDuDe
echo Version: 0.2 alpha for Arduino-NG / Diecimila
echo Contact: csehrobert(at)tavir(dot)hu
echo http://avr.tavir.hu
echo (c) 2009-02-12
echo.
set avrdudefile=H:\arduino\arduino-0012\hardware\tools\avr\bin
set avrdudeconf=H:\arduino\hardware\tools\avr\etc\avrdude.conf
set comport=COM3
set chip=m328p
set comspeed=19200
set debug=0
if %debug% == 0 goto next
echo Param1:%1
echo Param2:%2
echo Param3:%3
echo Param4:%4
echo Param5:%5
echo Param6:%6
echo Param7:%7
echo Param8:%8
echo Param9:%9
echo.
:next
echo Flash : %1
echo EEPROM : %2
if "%3" == "" echo COM : %comport% (default)
if NOT "%3" == "" echo COM : %3
if NOT "%3" == "" set comport=%3
if "%4" == "" echo Chip : %chip% (default)
if NOT "%4" == "" echo Chip : %3
if NOT "%4" == "" set chip=%4
if "%5" == "" echo COMSpeed: %comspeed% (default)
if NOT "%5" == "" echo COMSpeed: %5
if NOT "%5" == "" set comspeed=%5
echo.
rem cd "%avrdudefile%"
rem avrdude.exe -C "%avrdudeconf%" -p m328p -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
"%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m%chip% -c avrisp -P %comport% -b %comspeed% -U flash:w:%1:a
pause
=================================
Esetleg valaki talál benne hibát, vagy van hasonló tapasztalatotok?
A teljes internetet átbújtam oda-vissza, hogy Bascom alól hogyan lehet Arduino panelen programozni, de az Istennek sem akar összejönni! Arra jutottam, hogy lényegében az összes módszer ugyan azt a metódust használja, így az ezen az oldalon olvasható megoldást másodjára még tüzetesebben is kipróbáltam, de semmi. Még csak az sem jön össze, hogy a batch fájl lefutása ne egy pillanat műve legyen, hanem gombnyomásra lépjen ki.
Az esetemben annyi az eltérés a taviron szereplő példához képest, hogy 328p típusú a mikrovezérlő és COM3-as portra hozta ki a panelt, valamint az arduino programon belül mások az elérési utak. Ezeket át is írtam a bat fájlban, így a következőképpen néz ki most:
=============================
@echo off
echo.
echo AVR-Duino/Arduino uploader for Bascom by AVRDuDe
echo Version: 0.2 alpha for Arduino-NG / Diecimila
echo Contact: csehrobert(at)tavir(dot)hu
echo http://avr.tavir.hu
echo (c) 2009-02-12
echo.
set avrdudefile=H:\arduino\arduino-0012\hardware\tools\avr\bin
set avrdudeconf=H:\arduino\hardware\tools\avr\etc\avrdude.conf
set comport=COM3
set chip=m328p
set comspeed=19200
set debug=0
if %debug% == 0 goto next
echo Param1:%1
echo Param2:%2
echo Param3:%3
echo Param4:%4
echo Param5:%5
echo Param6:%6
echo Param7:%7
echo Param8:%8
echo Param9:%9
echo.
:next
echo Flash : %1
echo EEPROM : %2
if "%3" == "" echo COM : %comport% (default)
if NOT "%3" == "" echo COM : %3
if NOT "%3" == "" set comport=%3
if "%4" == "" echo Chip : %chip% (default)
if NOT "%4" == "" echo Chip : %3
if NOT "%4" == "" set chip=%4
if "%5" == "" echo COMSpeed: %comspeed% (default)
if NOT "%5" == "" echo COMSpeed: %5
if NOT "%5" == "" set comspeed=%5
echo.
rem cd "%avrdudefile%"
rem avrdude.exe -C "%avrdudeconf%" -p m328p -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
"%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m%chip% -c avrisp -P %comport% -b %comspeed% -U flash:w:%1:a
pause
=================================
Esetleg valaki talál benne hibát, vagy van hasonló tapasztalatotok?
duino2.bat hova lett bemásolva?
A Bascom alatt external programmer esetén ha bevillanás van: nem látja a bat file-t.
Elérési útjában ne legyen szóköz, ékezetes betű. Én praktikusan a C:\-re rakom.
A fórumban a 02-alpha helyett már 1.0 körül járok....
http://avr.tavir.hu/modules.php?name=Fo ... c&start=15
A Bascom alatt external programmer esetén ha bevillanás van: nem látja a bat file-t.
Elérési útjában ne legyen szóköz, ékezetes betű. Én praktikusan a C:\-re rakom.
A fórumban a 02-alpha helyett már 1.0 körül járok....
http://avr.tavir.hu/modules.php?name=Fo ... c&start=15
Szia Robert!
Idő közben a felprogramozás problémája megoldódott! Leszedtem a 2.0.7.3-as patch-et a Bascomhoz, amivel már kényelmesen listából ki lehetett választani az ARDUINO-t. Jelenleg az LCD-vel bajlódom. A háttérvilágítást gyönyörűen elindítja, de a programban megírt szövegből egy karaktert sem jelenít meg! Lehet az a probléma, hogy a D0-D3 lábak nincsenek testre téme? (4bit-en próbálom megszólaltatni)
Idő közben a felprogramozás problémája megoldódott! Leszedtem a 2.0.7.3-as patch-et a Bascomhoz, amivel már kényelmesen listából ki lehetett választani az ARDUINO-t. Jelenleg az LCD-vel bajlódom. A háttérvilágítást gyönyörűen elindítja, de a programban megírt szövegből egy karaktert sem jelenít meg! Lehet az a probléma, hogy a D0-D3 lábak nincsenek testre téme? (4bit-en próbálom megszólaltatni)
Az R/W le van kötve, azzal nincs gond. Már még a kontrasztra is elkészítettem a feszültségosztót, gondolván hátha... A programkód a lehető legegyszerűbb 
$regfile = "m328pdef.dat"
Cls
Do
Lcd "Hello"
Loop
Gyakorlatilag mindent a csip beállításaiban adtam meg, hogy az LCD melyik lába a mikrokontroller melyik kivezetéséről van ketyegtetve. Órajelet is ellenőríztem. Egyébként nálam az egyszerű port be- és kikapcsolások felprogramozására tökéletesen ment a beépített Arduino eljárás!
$regfile = "m328pdef.dat"
Cls
Do
Lcd "Hello"
Loop
Gyakorlatilag mindent a csip beállításaiban adtam meg, hogy az LCD melyik lába a mikrokontroller melyik kivezetéséről van ketyegtetve. Órajelet is ellenőríztem. Egyébként nálam az egyszerű port be- és kikapcsolások felprogramozására tökéletesen ment a beépített Arduino eljárás!
Elvégeztem a javasolt javításokat. Annyiban változott a helyzet, hogy most a teljes alsó mátrixsort villogtatja kb. fél Hz-es gyorsasággal, valamint a háttérmegvilágítás erőssége is ennek függvényében villog. Most így néz ki a programsorom:
$regfile = "m328pdef.dat"
Initlcd
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portb.3 , Rs = Portb.4
Config lcdmode = PORT
Lcd "Hello"
$regfile = "m328pdef.dat"
Initlcd
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portb.3 , Rs = Portb.4
Config lcdmode = PORT
Lcd "Hello"
Kontraszt nincs beállítva jól.
Program végéről hiányzik at END utasítás - így a chip újraintdulgat...
Ext1 esetén nála ilyen az LCDteszt:
lcdmode vagy port vagy pin
nálad nem kell az lcdmode=port sor....
Program végéről hiányzik at END utasítás - így a chip újraintdulgat...
Ext1 esetén nála ilyen az LCDteszt:
Kód: Egész kijelölése
$crystal = 16000000 'orajel
$regfile = "m168def.dat" 'chip
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , Db7 = Portb.1 , E = Portd.5 , Rs = Portd.4
Initlcd
Cls
Initlcd
Cls
Lcd "Itt vagyok!"
End 'end program
lcdmode vagy port vagy pin
nálad nem kell az lcdmode=port sor....
Most ezzel próbálkoztam:
$include "DuinoLib.inc"
$crystal = 16000000
$regfile = "m328pdef.dat"
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pin5 , Db5 = Pin4 , Db6 = Pin3 , Db7 = Pin2 , E = Pin11 , Rs = Pin12
Initlcd
Cls
Initlcd
Cls
Lcd "Itt vagyok!"
End
Ha a "Pin" jelöléseket átírom portokra, akkor is ugyan ezt csinálja. Egy ismerősömtől majd megpróbálok kölcsönkérni egy másik LCD-t, hátha azzal van a baj, bár nem tartom túlságosan elképzelhetőnek. Mindenesetre köszönöm a segítséget!
$include "DuinoLib.inc"
$crystal = 16000000
$regfile = "m328pdef.dat"
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pin5 , Db5 = Pin4 , Db6 = Pin3 , Db7 = Pin2 , E = Pin11 , Rs = Pin12
Initlcd
Cls
Initlcd
Cls
Lcd "Itt vagyok!"
End
Ha a "Pin" jelöléseket átírom portokra, akkor is ugyan ezt csinálja. Egy ismerősömtől majd megpróbálok kölcsönkérni egy másik LCD-t, hátha azzal van a baj, bár nem tartom túlságosan elképzelhetőnek. Mindenesetre köszönöm a segítséget!
Basszus! Már nem az első cucc, amit Kínából rendelek, így tudhatnám, hogy vigyázni kell vele! Az LCD hátán van egy egyszerű kis táblázat, ami balról jobbra írja le a lábek neveit, viszont a tényleges lábkiosztás jobbról balra történik! Újrakábeleztem az egészet és pöccre működik!
Köszi szépen mégegyszer a segítséget, mert a programkódban igen sok gyermeteg hibát vétettem :S Hiába no, nem tegnap volt, hogy utoljára elővettem a mikrokontrolleremet
Szerencse a szerencsétlenségben, hogy a hibás bekötés ellenére nem ment tönkre az LCD!
Köszi szépen mégegyszer a segítséget, mert a programkódban igen sok gyermeteg hibát vétettem :S Hiába no, nem tegnap volt, hogy utoljára elővettem a mikrokontrolleremet