Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Сообщений 61 страница 90 из 216


не 17.000, а 1.700



На оф. сайте можно скачать версию

- If writing assembler, please use $ASM..$NO ASM or the !
    While asm is cuurently supported without preceding !, it is not allowed in the future.
    So this is good:
    $end asm
    ! nop
    But this is not good:

  - When using CONFIG LCD, use X instead of * : config LCD = 16x2 instead of 16*2
    Bother are valid, but the * will become invalid in the future.
  - When using parameter options with spaces like PWM A, use underscores instead : PWM_A
    Both are valid, but spaces are not allowed in the future.
  - use CONFIG POWERMODE instead of the POWER statement. See Help.
  - getRc_m128_PINF.lib added for getrc() on M128, portf.
  - shiftout option parameter did not allow constants (numeric paramter had to be specified)
  - added .align mnemonic to the internal assembler
  - m48def.dat, WDVALUE must be : WDVALUE=16,32,64,128,256,512,1024,2048,4096,8192
  - CONFIG TCx , PWM and WAVE modes will automatic set the port direction register for COMPAREx options.
    But it also set the other port direction bits to output which was wrong.
  - xmega LCD simulation added
  - shiftout option parameter did not allow constants (numeric paramter had to be specified)
  - xmega uart simulation corrected.
  - Editor did not repaint properly in some cases when adding a new line.
  - avrisp mkII programmer can write all xmega fusebytes individually.
  - config print1|print2|print3 settings were not cleared at the begin of the compilation.
    This would give the effect that when used once, the config would remain in effect till the IDE was restarted.
  - $FILE would append to the error file instead of overwriting it.



Ну вот,  начались улучшизмы : (
Написали бы лучше пару новых драйверов.



Ну вот , как раз на 48 меге недавно пришлось даташит поднимать, так как Баском не в состоянии был WD на 8 секунд включить(Wdtcr = &H69). А теперь уже сделали. Ну ничего, иногда надо мозги раскачивать! :-)



вышла в свет новая версия компилятора beta
http://www.mcselec.com/index.php?option … p;Itemid=1
а уже обсуждается в соседней ветке :)

Отредактировано Viktor (2012-02-21 11:02:39)



Появилась версия
- config COM , IRDA baud rate calculation fixed.   
- version() with parameter 3 will return file name : Print Version(3)       
- xmega autoprog will set lock bit last now.       
- RS485 (config print) support added to printbin also changed       
- rc5.lib added, sponsored by Lumicon, http://www.lumicoin.de , see config rc5, mode=background       
- improved usb read handling for quicker flash programming.       
- eeprom programming xmega/PDI mode fixed.       
- $stackdump added. See also stackdump.bas. Based on code from MWS.       
- history.txt is shown once for each new version of the IDE       
- ERR is set to 1 when there is not enough frame space. you use frame space when using locals and
  passing parameter byval. also a test like : if left(string,3)="value" will use temp space.   
- added link to the bascom-avr.xml file location in the Help, About window.       
- boot loader samples improved : bblocklocal incremented after a valid block.       
- huge memory on Xmega bug fixed : rampX and r12 inside an ISR were not preserved.       
- config xram for xmega, fixed bug for sram mode. also, baseadr changed, see help.       
- $timeout help updated (it works for SW UART too), and INPUT with $timeout added to SW UART.       
- spiinit, will set only miso to output when slave mode is selected.       
- w5200 support added.       
- W5100 tcp/ip support added.       
- w5300 tcp/ip support added.       
- xmega : saving watchdog cause in r0 was not implemented. also, the flags were not cleared at start up.       
- an updated version of bascomp.exe was not included in the release.       
- sample files are now located in users\USER\Documents\MCS Electronics\BASCOM-AVR\Samples       
- split screen editor fixed.       
- removed backspace from INPUT.       
- added M8U2 and M16U2 support       
- fixed RTC32 and added new sample from MAK3. See XM256A3BU-RTC32.bas   
- STCHECK checking framesize (error 3) did not work. So you could get error 3 while there was no error.       
- DTMFOUT did not saved r23 which could lead to erratic behavior for chips with TIMSK in high IO regs.   
- documented LCDCMD and LCDDATA       
- When adding files in Project Mode, you can select multiple files using CTRL/SHIFT.       
- Adding a CONSTANT _CHECKVAL with a value <>0 will test for illegal chars in VAL()
  Const _CHECKVAL =1 : Dim S as string * 10 : s = "1234a" : w = val(s) : print ERR       
- config clock, gosub=sectic option was sensitive to position.       
- user sub/functions calls are protected against interrupts. See $noframeprotect       
- xmega config event_system : portA and portB were reversed. ADCB_CH0/ADCB_CH3 would result in a wrong setting too.       
- config servos has a new mode to use servos with less system load. this mode works on xmega as well.       
- using an overlay array with config base=0, would result in the wrong overlay address.       
- full version can run updatewiz from the IDE



Пётр написал(а):

- config servos has a new mode to use servos with less system load. this mode works on xmega as well.

Ну на конец-то.)


- #elseif added to conditional compilation
- canbaud improved so it will calculate for all frequencies.
- config power ...., bug for xmega, modes standby and exstandby fixed.
- ON value GOTO|GOSUB now support locals/passed parameters.
- tcipip 5100 lib : for xmega tcpwrite/tcpwritestr failed because of an invalid offset in case of sram
- bug caused box, line and boxfill not to work with arrays
- stk500 programmer can read/write target and reference voltage.(menu option Board, Stk500)
- config debounce accepts a word for the delay now.
- when writing a user lib such as bcd.lib (called from bin2bcd16.bas) , you need to add some code that will restore the SREG register.
you need to include it before you return. _FPROTECT is set by the compiler. $noframeprotect will result in a value of 0.
And by default it will be set to 1.
Out sreg,r3 ; restore I flag
- added info to xtea.lib for using other rounds than 32.
- string() and space() return an empty string now when 0 bytes are specified.
- canreceive() did not work with the optional length byte. Strings are also supported now.
- printbin with RS485 : the level was set twice. but the status flag was checked twice too. this will result in an endless loop.
previously, the printbin lib function changed the level, but when sending multiple items, it is better to do that once.
So now printbin abc ; def ; klm will set the level , then will send 3 variables, and then will check the status and reset the level.
- Config Canmob , using a variable for IDTAG did not work for bitlen=11. bitlen=29 is no problem.
as a workaround you can use a variable for the bitlen :
dim bl as byte : BL=11
Config Canmob = 1 , Bitlen = BL , Idtag = Can_own_node , Msgobject = Disabled , Msglen = 4
- instr() support added to $bigstrings. instr will return a word when used with $bigstrings
- Japanese(and probably all font names with a extended characters) were not saved/restored.
- datetime.lib : changed set_date and set_time to include a return. this code is used by config clock in user mode.
- new external interrupt xmega example from user hzz added.
- added code explorer tree, see right mouse click for more options.
- current sub/function is shown while editing
- changed xm32D4,xm32a4U,xm32a4,xm16d4,xm16a4 to allow xmega eeprom programming
- _checkval constant value was not tested in the new val() option. only adding the constant would use the code, no matter the assigned value.
- 1wread() for Xmega, without optional number of bytes to read, would return the wrong value.
work around : specify the number of bytes to read.
- an invalid constant in an index would not raise an error : ar(var + cWrongConstant) = somevalue
- M164P and M324P in timer0, pwm mode, did not set port portb.3/portb.4 direction but portd.5/portd.6
- str() function in combination with interrupt code that used Y-pointer could potentially fail because of non atomic saving of Y-pointer.
- waitus variable : when variable was 0, it would result in 65535 us delay. a check for 0 is added.
low $crystal values combined with a low delay will result in a longer delay because the test will use time as well.
- attiny1634 dat file added.
- frame protection disabled interrupts for functions without parameters. Use $noframeprotect as a work around till 2076 is released.
- config canmob did not set mask bits with the proper value (bits from tag were used). The work around is to set these registers manual.
- m16m1 support added.
- added option to make showing of TABS and sub/function/labels optional to get more screen space
- compiling a project without include files, after compiling a project with include files with an error would result in the wrong file/line error info.
- added CHDIR, MKDIR and RMDIR to the help.(AVR-DOS)
- some chips have the same device ID like the M8 and M8A for example. These are binary compatible.
Because the chip ID is not unique you get a warning message that the chip does not match. this has been changed.
Now the programmer will also look for the dat file used with $regfile.
- AVR-DOS used with CONFIG BASE 0 would result in MBR errors.
- xm64d4 support added.
- ATXEMGA128A4U support added.
- added word and dword to float conversion.
- EADOGS102 lib added.
- pressing ESC key will interrupt/stop the compiling process.
- added a check for improper array reference. this means that arrays passed to user sub/functions must be declared with ().
if you get error 380, you can either fix your code. Or you can add this to your code : Config Error = Ignore , 380 = Ignore
While this ignores the error it is best to use the proper reference. See the help DECLARE, CALL.
- the xmega chips that have TIMER2 are now supported by the CONFIG TCXX. See help.
- added $frameprotect=value , see also $noframeprotect. $noframeprotect is now default!
- when passing arrays to user sub/funcions, you need to specify ()
declare sub test(ar() as byte)
^^ array is passed
This is done for better user code validation. When you do not want to change your code and want to use the old syntax,
you can add config error command to your code to suppress the error 380.

Отредактировано Djavdet (2013-01-14 06:33:47)



О какой версии идет речь?
ИМХО ее нет!



я тоже не нашел



Обновился из программы утром, такой чейнджлог был.



Официально вышла версия
Точнее это версия



Что-то я не понял, как включать линии между началом и концом операторов?

Нашёл - Draw Indention Lines



В сети, в свободном доступе, появилась версия
Кому нужен, качайте. http://smiles.bbmix.ru/1070.gif



а как там с компактностью кода, в новых версиях?
Марк этим еще не озадачивался?

и не автоматизировали $SW и $HW  СТЕКИ? а то каждый раз в серьезных проектах пишу банально побольше, так как на этапе проектирования алгоритма сложно продумать кол-во подпрограмм и переменных



Подскажите, где можно качнуть версию с инъекцией?
Ну или в личку ссылку



Появилась новая версия, качаем.http://smiles.bbmix.ru/1070.gif public release
- changing a bit on a passed array inside a sub/function gave a bit index error.
- while moving all single FP code to fp_trig.lib, some double (but WRONG) functions were moved to the top. It causes various problems. Update your LIB package using the updatewiz !
- clear buffer did not reset the RST pin in case CTS/RTS was used.
- val()/asc2float contained a bug for converting big values not fitting into the mantissa. The exponent was not increased.
- asc() can have an additional index parameter : byte=Asc(string|string constant[,index]). Use this instead of asc(mid(
- user functions/subs can have a custom color.
- added support for i2c lcd display RX1602A5. Use : config lcd = 16x2 , chipset = st7032
- using overlay pointing to a string array resulted in a wrong overlay address.
- additional XTEA2.LIB added. This lib complies with the original standard.
- Tab order can be changed with drag and drop.
- USI master TWI mode added.
- when config submode=new was used, the syntax check could give false errors.
- mkII programmer would give a warning about chip mismatch when atmel chip ID was the same.
- pulsein.lib was missing from distribution.
- documented beta switches $NOTYPECHECK, $TYPECHECK and $REDUCEIVR
- when using a serial boot loader compiled with an older version, and when calling it from code (not after a reset) you need to reset the u2x flag in ucsrxA.
  Or you can compile both the bootloader and main code with the new version. When you want the old behaviour, you can remark the u2x constant in the dat file.
- FLIP programmer will not erase EEPROM anymore.
- use ALT key to select blocks of text in the editor.
- hint window location fixed for multi monitors systems.
- rgb8to16() function added to convert RGB8 to RGB16.
- xmega, config OSC : when using external osc, the oscillator ready test was not working properly. enable the internal osc as a workaround in 2077. fixed in this release.
- arduino leonardo can be programmed with myAVR MK2/AVR910. You need to give a manual reset before pressing F4.
- attiny87 dat file contained an error : INTADR = 1 ; it was 2 but must be 1
- xmega spi length parameter supported globals only. now it supports locals and parameters as well.
- syntax check gave errors when config submode=new was used in some cases.
- 1wirecount returned with ERR set, even when sensors were found.
- simulator has trace log option to dump all executed lines to a file.
- error list content can be copied to clipboard with right mouse popup menu.
- xmega uarts 5-8 serial buffered output enable the wrong uart.
- indention line colors can be customized.
- proper indent will not indent comment.
- getkbd() required change for xmega. (xmega does not use port register for pull up)       
- added dword support to lookup()
- config rnd=16|32 added to support bigger random numbers.
- attiny441 stk500 settings changed. attiny441 and attiny841 verified with real chips. some mods made to the dat files.
- increased internal constant string storage length to 1024. for cases like : s="some very long constant". previously the max size was 256.
- xmegaE5 timers 4/5 support added.
- xmegaE timer4/5 OVF bit need a manual reset, writing a 1 to intflags register. it is not cleared automatically.
- xm128a1U dat file added
- code folding added to editor. Press F11 to fold a sub/function
- all project files can be placed in an archive (zip) file.
- AVR-DOS, GET and PUT support $bigstrings
- $boot extended to support >64KB processors. $boot can be used together with $inc to include a boot loader in your code.
- FM25C256 example with BMA.bas sample added which demons xmega ramtron lib with shared bus.
- baudX=value added for Xmega. This will change the baud rate on an xmega at run time.
- special multi bus i2c added for normal AVR processors. See config i2cbus.
- muli dimensional array support added like : dim ar(10,50,3,5,2).
- long/dword data types added to SORT statement.
- report extended with bit position in memory and length of dimensioned strings.
- Lookup supports a numeric variable too for the label : novar = LOOKUP( value, label|address).
- soft spi supports DATA ORDER LSB and MSB.
- str() second optional parameter added to help. It specifies number of digits after the DP. Only for doubles.
- m324/m164/m644/m1280 config timer0, disconnect option fixed.
- settings xml file can be passed as parameter to allow different settings files and versions.
- added option to show invisible characters.
- added support for DWORD to SWAP.
- added insertionsort.bas sample.
- m64C1 and M32C1 dat files added.
- History Backup option added : it will create a unique copy of the source file each time you save a file.
- code explorer can show INC files under their own branch (options, environment, IDE)
- Qsin and Qcos integer trig added.



Кстати, в этой версии появилась поддержка FT800. Возможно будет интересно тем, что работает с LCD дисплеями. http://avrhelp.mcselec.com/ft800.htm

Отредактировано Пётр (2014-12-28 13:16:01)



Петр, у меня чуть система не упала!
удалил 2078, пробую ставить 2076 - а фиг! виснет и ругается на ocx/dll!
снова чищу реестр, поставил 2077 - заработало
чуть не поседел ))

не вы в теме на их форуме отписались?



А у меня проблема. В последней версии перестали компилироваться программы, если в них используются команды вывода на текстовый жк дисплей: CLS, LCD, LOCATE, CURSOR. Проверка кода завершается ошибкой Error : 215   Line :   1     Unknown ASM mnemonic [eti ]  , in File : C:\bla-bla-bla.bas.  Мнемоника может быть и другая. В все прекрасно. Кто подскажет, что делать?



сделайте скриншоты ошибок с указанием кода, который их вызвал - я выложу на форум автора



Александр, а у Вас такой проблемы нет? Программа из одной команды CLS хоть и не имеет смысла, но дает ту же ошибку.

https://www.dropbox.com/s/4624p7jpfh7pk … 8.png?dl=0

Отредактировано Djavdet (2015-01-13 11:19:31)



Проверил на другом компьютере, чистая установка, та же ошибка. А нормально. :(



Djavdet написал(а):

А у меня проблема. В последней версии перестали компилироваться программы, если в них используются команды вывода на текстовый жк дисплей: CLS, LCD, LOCATE, CURSOR

Архив у Вас на mail

Вы забыли про это:

  $framesize = 64     ' Размер области используемой и необходимой для преобразований
  $hwstack = 64       ' Размер аппаратного стека
  $swstack = 64       ' Размер программного стека

http://sf.uploads.ru/t/aFEg8.jpg http://sf.uploads.ru/t/IkMlU.jpg

Отредактировано sasha_1973 (2015-01-14 01:10:51)



Стеки я задавал, не помогало.
Все заработало только после того, как использовал в коде Initlcd, как у Вас.

Странно что больше ни у кого такого нет. Я проверил еще и на ноуте, где 32 битная система, на всякий случай. Всё то же самое.



У меня без этого:

  $framesize = 64     ' Размер области используемой и необходимой для преобразований
  $hwstack = 64       ' Размер аппаратного стека
  $swstack = 64       ' Размер программного стека

даже не начинается компиляция, т.е., вообще ничего не происходит, как только раскомментирую строки, всё начинает собираться!

А "Init" чего там, обязательная процедура.



Уважаемое сообщество!

Попробуйте у себя, может у кого проявится 4 вариант реакции Bascoma

1) Ошибка при компиляции

2) При компиляции ничего не происходит, вообще ничего.

3) Компилируется и работает правильно


88 сразу после обновления у меня работал по варианту 1.5, в папке с программой создавал два файла, бинарник не создавался, ошибок никаких. Поудалял все версии какие были и поставил из дистрибутива с сайта. После этого все заработало как обычно, кроме LCD. Дистр перекачаю, возможно, Mrshilov и прав.



У меня так же как и в 95 посте.

Compiler version :
Compiler build   :
IDE version      :
Serial number    :XXXXXXX
Windows OS       :Microsoft Windows XP
Windows SP       :Service Pack 3
Company          :Home
Owner            :Radan
Windows dir      :C:\WINDOWS
App data dir     :C:\Documents and Settings\Àäìèíèñòðàòîð\Local Settings\Application Data\MCS Electronics\BASCOM-AVR
System dir       :C:\WINDOWS\system32



У меня нормально компилируется в Bascom программа, содержащая команды работающие с LCD.

sasha_1973 написал(а):

У меня без этого:

$framesize = 64     ' Размер области используемой и необходимой для преобразований
$hwstack = 64       ' Размер аппаратного стека
$swstack = 64       ' Размер программного стека

даже не начинается компиляция, т.е., вообще ничего не происходит, как только раскомментирую строки, всё начинает собираться!

У меня сначала появляется окно с предупреждением.


Когда его закрываю, в окне баскама отображается ошибка.

Error : 22    Line :   117   Out of SRAM space [*CHECK $HWSTACK,$SWSTACK,$FRAMESIZE]  , in File : D:\_Atmega328P.bas

Потом проходит успешная компиляция и получаю рабочую прошивку (проверено в протеусе, работает).