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

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

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

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



AVR-DOS на Xmega

Сообщений 1 страница 7 из 7

1

Кто нибудь запускал?
А то у меня при простом переписывании камня при компилировании миллион ошибок вываливается
Там походу нужно все конфиги и библы переписывать?

0

2

оказывается, в файле Config_MMC.bas ему не нравится стока

Код:
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1

кто нибудь знает как конфигурировать SPI на XMega?

0

3

Да, не просто оказалось запустить AVR-Dos на X-mega.
Дело в том, что для использования регистров в файле "Config_MMC.bas" используется библиотека не "MMC.LIB", а "MMC-XMEGA.LIB".
И аппаратный SPI инициализируется по другому:

Код:
 Config Spid = Hard , Master = Yes , Mode = 0 , Clockdiv = Clk4 , Data_order = Msb
       Open "SPId" For Binary As #11
       Spiinit


Дальше заходится в библиотеку "MMC-XMEGA.LIB" и там меняется регистр SPI под свои нужды:

Код:
;XMEGA SPI
;this lib assume SPIC to be used, but it is simple to use SPIE,SPID or SPIF by adjusting the registers

_byte2spi_255:
   ser r16                              ; send 255
   rjmp _Byte2SPI
_byte2spi_0:
   Clr r16                              ; send 0
_byte2spi:

 Sts SPID_DATA, R16                     ; SPIC data register  ,change to SPID, SPIE or SPIF
_byte2spi2:
 Lds R16,SPID_STATUS                    ; get status ,change to SPID, SPIE or SPIF
 Sbrs R16,7                             ; skip if it is set
 rjmp _byte2spi2
 Lds R16 , SPID_DATA                    ; finally get the data back into r16, ,change to SPID, SPIE or SPIF
 ret
*#ENDIF


И всё равно не работает, ошибка 227, надеюсь это флешка, так как строб по SCK есть.

+1

4

Вроде бы должно работать:

https://www.mcselec.com/index2.php?opti … ight=xmega

https://www.mcselec.com/index2.php?opti … ight=xmega

https://www.mcselec.com/index2.php?opti … ight=xmega

Вообще авр-дос в баскоме платный, есть вроде бы альтернативные варианты.

0

5

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

Вроде бы должно работать....

Да, работает, транзистор с светодиодом на SCK помешал.
Использовал AVR-DOS тот, что есть в Sampe, там сжатый архив был, вроде от версии Bascom 2.0.7.9.
Если чего, папки сканировать: S = Dir( "*.") , файлы и папки S = Dir( "*.*") .

0

6

Насколько быстро работает?

0

7

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

Насколько быстро работает?

Пока ещё не проверял, боролся с отображением русских букв.
Русские названия в файлах и папках можно вывести вот так:

Код:
If код символа > 126 Then код симола.6 = 1

И так-же обратно для выбора (шестой бит в ноль).

Отредактировано Ev3658 (2017-07-27 14:59:34)

0