Zkompilování souboru "bas" pro Atmega8

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
hafca
Příspěvky: 4722
Registrován: 27 črc 2004, 00:00
Bydliště: 25km na západ od Prahy

Zkompilování souboru "bas" pro Atmega8

#1 Příspěvek od hafca »

Programování není moje parketa, proto možná hloupý dotaz. Potřebuji zkompilovat soubor s koncovkou bas pro Atmega8. V jeho začátku je ale psaný soubor m8Adef.dat, který ovšem ke stažení už nebyl. Dá se to zkompilovat i bez něj nebo je to jen odkaz na nějakou knihovnu v kompileru? A v čem to případně zkompilovat?
K dispozici je sice i hex, ale ten je pro displej 4*16 a já mám 4*20 na kterém jsou texty divně posunuté. A to je druhý dotaz. Stačí změnit jen v řádcích, kde je As String * 16 na *20 aby se zobrazování upravilo?
Tohle je jen část kódu, celý asi nemá smysl dávat, je to dost dlouhé.

'---------------------------------------'
' Project: Level and distance gauge '
' Author: Joerg Trautmann '
' Create date: 10.09.2014 '
' Version: 2.4 '
'---------------------------------------'

' Basic settings for Atmega8
$regfile "m8Adef.dat"
$crystal = 16000000 'Frequency: 16 Mhz
$hwstack = 128
$swstack = 128
$framesize = 128

' Activate Pullups
Set Portb.1
Set Portb.2
Set Portd.0
Set Portd.1
Set Portd.6
Set Portd.7

' Config ports as input/output
Config Portb.1 = Input 'Next key
Config Portb.2 = Input 'Return key
Config Portd.0 = Input '- key
Config Portd.1 = Input '+ key
Config Portd.2 = Output 'US module trigger
Config Portd.3 = Input 'US-module echo
Config Portd.6 = Output 'Define portD6 as output for LED
Config Portd.7 = Output 'Define portD7 as output for Relay

' Constants for Port set and Pin request
Const On = 1 'Port high
Const Off = 0 'Port low
Const Pressed = 0 'Pin low

'--------------------------------------------------
' Define alias assignments for better understanding

' Input
Next_key Alias Pinb.1
Return_key Alias Pinb.2
Minus_key Alias Pind.0
Plus_key Alias Pind.1
Echo_in Alias Pind.3

' Ouput
Trigger_out Alias Portd.2
Led Alias Portd.6
Relay Alias Portd.7
'--------------------------------------------------

' Set port status
Trigger_out = Off 'Set trigger off
Led = Off 'Set LED off
Relay = Off 'Set relay off

' LCD configuration
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , Rs = Portc.5 , E = Portc.4
Initlcd : Display On : Cursor Off : Cls

' Declare procedures
Declare Sub Init()
Declare Sub Generate_tank_number_entries()
Declare Sub Calibrate_tank(level As Single)
Declare Sub Calculate_level()
Declare Sub Gauge_distance()
Declare Sub Set_box_width_and_divisor()
Declare Sub Display_distance()
Declare Sub Display_level()
Declare Sub Level_watchdog()
Declare Sub Select_level_alarm_type()
Declare Sub Select_level_alarm_value()
Declare Sub Displaytext(byval Line1_text As String , Byval Line2_text As String , Byval Line3_text As String , Byval Line4_text As String )

' Variables for displaying text
Dim Line1_text As String * 16
Dim Line2_text As String * 16
Dim Line3_text As String * 16
Dim Line4_text As String * 16

' Variables for displaying level as bargraph
Dim Bargraph_character As String * 1
Dim Bargraph As String * 16
Dim Bargraph_level As String * 16
Dim Bargraph_value As Byte
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Uživatelský avatar
ohryzek36
Příspěvky: 2393
Registrován: 24 pro 2008, 00:00
Bydliště: Zlínsko

#2 Příspěvek od ohryzek36 »

Také s tímto nemám moc zkušeností, ale na škole jsme programovali Atmely v Bascomu a ten kód tomu programu víceméně odepovídá, někde ho asi možná ješte mám schovaný, ale tipuju, že se dá na internetu sehnat aktuální verze (já mám tak 6-8 let starou, tak nevím jak by to bylo s kompatibilitou).
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#3 Příspěvek od nekmil »

$regfile "m8Adef.dat" - je nutný, určuje typ procesoru
Config Lcd = 16 * 4 - změnit na 20x4
Dim Line1_text As String * 16 - zkus ty stringy nastavit na String * 20 to má asi souvislost se zobrazováním na LCD

Pošli mi celý ten soubor já to zkompiluju, mám pnou verzi.
Uživatelský avatar
hafca
Příspěvky: 4722
Registrován: 27 črc 2004, 00:00
Bydliště: 25km na západ od Prahy

#4 Příspěvek od hafca »

Dík za nabídku. Dal jsem to na ulozto, je to soubor bas. Je to neupravené, úpravu raděj nechám na tobě, aby s tím nakonec nebylo víc práce. :wink:
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#5 Příspěvek od nekmil »

Tak se vyskytl problém. Ten původní program zabírá 99% prostoru v ATmega8.
Pokud jsem všechny ty stringy zvětšil na 20, začal překladač hlásit chyby(málo SRAM).
S "větším" procesorem to prošlo bez problému. Tak jsem nechal string*16, nastavil LCD na 20x4.
Ten bargraf by měl ukazovat jen v rozsahu 16 znaků.
Zkus to nahrát do procesoru co to bude dělat.

http://profi.edisk.cz/stahnout-soubor/7 ... 2.5KB.html

Další pokus:
všechny stringy*20 ale zmenšil jsem hodnoty HWstack, SWstack, Framesize na 100 a překlad proběhl bez chyb.

http://profi.edisk.cz/stahnout-soubor/7 ... 2.5KB.html
Uživatelský avatar
hafca
Příspěvky: 4722
Registrován: 27 črc 2004, 00:00
Bydliště: 25km na západ od Prahy

#6 Příspěvek od hafca »

Moc děkuji. Zkusil jsem rovnou ten s upravenými hodnotami stack. Co jsem zkoušel, žádná chyba se tam neobjevila a funguje to.
Já mezi tím našel nějaký Bascom, ale ten stejně nenašel ten chybějící soubor. Měl jen m8def.dat a to nevím jestli je stejný nebo ne. To už je na mě vyšší dívčí. :cry:
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Uživatelský avatar
ujosvec
Příspěvky: 283
Registrován: 07 srp 2008, 00:00

#7 Příspěvek od ujosvec »

Mě to zkompilovalo OK.
Odkaz stažení:
http://www.edisk.cz/stahni/77914/Bascom ... .65KB.html
ujosvec
Dell INSPIRON N7110-Intel i7-2630QM-8G RAM-GT525M/1G-SSD-256G-Win8-64bit
Uživatelský avatar
hafca
Příspěvky: 4722
Registrován: 27 črc 2004, 00:00
Bydliště: 25km na západ od Prahy

#8 Příspěvek od hafca »

Ten neupravený se asi vejde bez problému. S úpravou to asi zabere víc místa a pak to hlásí chybu.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“