Zabar31

Bascom avr, atmega8 и пара вопросов

5 сообщений в этой теме

Zabar31    9

 

Всех приветствую! Вообщем ситуация такая - (сейчас будет предыстория) стал понемногу интересоваться МК и набрел на статью о подключении экрана нокии 3310 к атмеге8. Вот она http://cxem.net/mc/mc201.php  Сказать что заинтриговало - ничего не сказать... к тому же автор в комментариях написал, что можно поочередно выводить изображения, и таким образом создать анимацию. Так вот, к чему я, была у меня монохромная моторолла и на ней был прикольный "скринсейвер" с рыбками, теперь который я хочу воссоздать. Надписей "Hello, world!" я не планирую, а только чистый вывод изображений.

Теперь сама суть моего обращения на форум.

1) Так как в Bascom я начинающий, решил идти по пути наименьшего сопротивления, то есть немного подправив код в проэкте, предоставленный автором статьи. Подправить то я его подправил, но вот правильно ли... Вообщем мне бы хотелось чтобы знающие люди проверили бы мой код. Хотя Bascom компилирует код без проблем.

Вот исходный код:

Скрытый текст

$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 8
$framesize = 52


Config Portc.2 = Output
D3310dc Alias Portc.2
Config Portc.3 = Output
D3310ce Alias Portc.3
Config Spi = Soft , Din = None , Dout = Portc.1 , Ss = None , Clock = Portc.0
Spiinit
$include "3310init.bas"

Call D3310init

Do
Call D3310clear
Call D3310position(0 , 0)
Call D3310print( "Hello, world!")
Call D3310position(0 , 3)
Call D3310print( "cxem.net")
Waitms 5000
Call D3310invert
Waitms 5000
Call D3310uninvert
Waitms 5000
Restore Img
Call D3310bmpout
Waitms 5000
Loop
End
$include "3310end.bas"

Img:
Data &H00 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00,
Data &H00 , &H02 , &H04 , &H04 , &H08 , &H10 , &H20 , &H20 , &H40 , &H80 , &H02 , &H04 , &H04 , &H08 , &H10 , &H90,
Data &HA0 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04 , &H02 , &H02 , &H81 , &H80 , &H40 , &H40 , &H00,
Data &H10 , &H10 , &H08 , &HF8 , &HFC , &H02 , &H02 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H04 , &H18 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H01 , &H02 , &H04 , &H04 , &H08 , &H90 , &H40 , &H40 , &H20 , &H20 , &H10 , &H08 , &H08 , &H04 , &H04,
Data &H02 , &H01 , &H01 , &H00 , &HC0 , &HE0 , &HC0 , &H00 , &H00 , &HF8 , &HFC , &H00 , &H00 , &HFF , &HFF , &H08,
Data &H08 , &H84 , &H84 , &H00 , &H00 , &H00 , &H00 , &H1F , &H0F , &H00 , &H80 , &H40 , &H40 , &H20 , &H10 , &H10,
Data &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H00 , &H00 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H18 , &H60,
Data &H80 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H80 , &H40 , &H40,
Data &H21 , &H22 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &HC1 , &HC0 , &HE0 , &H00 , &H00 , &H80 , &H78,
Data &HFC , &HFC , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &HFF , &H7F , &H00 , &H03 , &H06 , &H1F , &H0F , &H00,
Data &H00 , &H83 , &H43 , &H41 , &H21 , &H20 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H21 , &H40 , &H40,
Data &H80 , &H80 , &H00 , &H01 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H00 , &H00 , &H01 , &H06 , &H18,
Data &H60 , &H80 , &H00 , &H80 , &H80 , &H43 , &H44 , &H20 , &H10 , &H10 , &H08 , &H08 , &H04 , &H82 , &H02 , &H01,
Data &H01 , &HE0 , &H20 , &H00 , &H00 , &HF8 , &HFC , &H44 , &H22 , &H22 , &H11 , &H00 , &H00 , &HFF , &HFF , &H01,
Data &H3E , &H30 , &H0F , &H00 , &H0F , &H0F , &H00 , &H00 , &H83 , &H81 , &H40 , &H20 , &H20 , &H10 , &H08 , &H88,
Data &H04 , &H04 , &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H40,
Data &H00 , &H08 , &H04 , &H04 , &H02 , &H02 , &H01 , &H80 , &HC0 , &H10 , &H10 , &H08 , &H0C , &H08 , &H00 , &H00,
Data &H03 , &HE3 , &H3E , &H0E , &H3F , &H38 , &H60 , &H00 , &H00 , &H1F , &H0F , &H08 , &H04 , &H04 , &H02 , &H80,
Data &H80 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H14 , &H22 , &H21 , &H41 , &H40 , &H80 , &H80 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40,
Data &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1F , &H30 , &H20 , &H20 , &H10,
Data &H0C , &H04 , &H00 , &H04 , &H03 , &H00 , &H00 , &H00 , &H00 , &H00 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04,
Data &H02 , &H06 , &H09 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H04 , &H04 , &H08 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20,
Data &H20 , &H40 , &H40 , &H80 , &H01 , &H02 , &H02 , &H04

Вот мой код: (на одинаковость стека изображений не обращайте внимания, мои в процессе воссоздания, а мне нужна проверка самого принципа вывода изображений, который я написал)

Скрытый текст

$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 8
$framesize = 52


Config Portc.2 = Output
D3310dc Alias Portc.2
Config Portc.3 = Output
D3310ce Alias Portc.3
Config Spi = Soft , Din = None , Dout = Portc.1 , Ss = None , Clock = Portc.0
Spiinit
$include "3310init.bas"

Call D3310init

Do
Call D3310clear
Restore Img
Call D3310bmpout
Waitms 1000
Call D3310clear
Restore Img1
Call D3310bmpout
Waitms 1000
Call D3310clear
Restore Img2
Call D3310bmpout
Waitms 1000
Loop
End
$include "3310end.bas"

Img:
Data &H00 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00,
Data &H00 , &H02 , &H04 , &H04 , &H08 , &H10 , &H20 , &H20 , &H40 , &H80 , &H02 , &H04 , &H04 , &H08 , &H10 , &H90,
Data &HA0 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04 , &H02 , &H02 , &H81 , &H80 , &H40 , &H40 , &H00,
Data &H10 , &H10 , &H08 , &HF8 , &HFC , &H02 , &H02 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H04 , &H18 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H01 , &H02 , &H04 , &H04 , &H08 , &H90 , &H40 , &H40 , &H20 , &H20 , &H10 , &H08 , &H08 , &H04 , &H04,
Data &H02 , &H01 , &H01 , &H00 , &HC0 , &HE0 , &HC0 , &H00 , &H00 , &HF8 , &HFC , &H00 , &H00 , &HFF , &HFF , &H08,
Data &H08 , &H84 , &H84 , &H00 , &H00 , &H00 , &H00 , &H1F , &H0F , &H00 , &H80 , &H40 , &H40 , &H20 , &H10 , &H10,
Data &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H00 , &H00 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H18 , &H60,
Data &H80 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H80 , &H40 , &H40,
Data &H21 , &H22 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &HC1 , &HC0 , &HE0 , &H00 , &H00 , &H80 , &H78,
Data &HFC , &HFC , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &HFF , &H7F , &H00 , &H03 , &H06 , &H1F , &H0F , &H00,
Data &H00 , &H83 , &H43 , &H41 , &H21 , &H20 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H21 , &H40 , &H40,
Data &H80 , &H80 , &H00 , &H01 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H00 , &H00 , &H01 , &H06 , &H18,
Data &H60 , &H80 , &H00 , &H80 , &H80 , &H43 , &H44 , &H20 , &H10 , &H10 , &H08 , &H08 , &H04 , &H82 , &H02 , &H01,
Data &H01 , &HE0 , &H20 , &H00 , &H00 , &HF8 , &HFC , &H44 , &H22 , &H22 , &H11 , &H00 , &H00 , &HFF , &HFF , &H01,
Data &H3E , &H30 , &H0F , &H00 , &H0F , &H0F , &H00 , &H00 , &H83 , &H81 , &H40 , &H20 , &H20 , &H10 , &H08 , &H88,
Data &H04 , &H04 , &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H40,
Data &H00 , &H08 , &H04 , &H04 , &H02 , &H02 , &H01 , &H80 , &HC0 , &H10 , &H10 , &H08 , &H0C , &H08 , &H00 , &H00,
Data &H03 , &HE3 , &H3E , &H0E , &H3F , &H38 , &H60 , &H00 , &H00 , &H1F , &H0F , &H08 , &H04 , &H04 , &H02 , &H80,
Data &H80 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H14 , &H22 , &H21 , &H41 , &H40 , &H80 , &H80 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40,
Data &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1F , &H30 , &H20 , &H20 , &H10,
Data &H0C , &H04 , &H00 , &H04 , &H03 , &H00 , &H00 , &H00 , &H00 , &H00 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04,
Data &H02 , &H06 , &H09 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H04 , &H04 , &H08 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20,
Data &H20 , &H40 , &H40 , &H80 , &H01 , &H02 , &H02 , &H04

Img1:
Data &H00 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00,
Data &H00 , &H02 , &H04 , &H04 , &H08 , &H10 , &H20 , &H20 , &H40 , &H80 , &H02 , &H04 , &H04 , &H08 , &H10 , &H90,
Data &HA0 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04 , &H02 , &H02 , &H81 , &H80 , &H40 , &H40 , &H00,
Data &H10 , &H10 , &H08 , &HF8 , &HFC , &H02 , &H02 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H04 , &H18 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H01 , &H02 , &H04 , &H04 , &H08 , &H90 , &H40 , &H40 , &H20 , &H20 , &H10 , &H08 , &H08 , &H04 , &H04,
Data &H02 , &H01 , &H01 , &H00 , &HC0 , &HE0 , &HC0 , &H00 , &H00 , &HF8 , &HFC , &H00 , &H00 , &HFF , &HFF , &H08,
Data &H08 , &H84 , &H84 , &H00 , &H00 , &H00 , &H00 , &H1F , &H0F , &H00 , &H80 , &H40 , &H40 , &H20 , &H10 , &H10,
Data &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H00 , &H00 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H18 , &H60,
Data &H80 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H80 , &H40 , &H40,
Data &H21 , &H22 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &HC1 , &HC0 , &HE0 , &H00 , &H00 , &H80 , &H78,
Data &HFC , &HFC , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &HFF , &H7F , &H00 , &H03 , &H06 , &H1F , &H0F , &H00,
Data &H00 , &H83 , &H43 , &H41 , &H21 , &H20 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H21 , &H40 , &H40,
Data &H80 , &H80 , &H00 , &H01 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H00 , &H00 , &H01 , &H06 , &H18,
Data &H60 , &H80 , &H00 , &H80 , &H80 , &H43 , &H44 , &H20 , &H10 , &H10 , &H08 , &H08 , &H04 , &H82 , &H02 , &H01,
Data &H01 , &HE0 , &H20 , &H00 , &H00 , &HF8 , &HFC , &H44 , &H22 , &H22 , &H11 , &H00 , &H00 , &HFF , &HFF , &H01,
Data &H3E , &H30 , &H0F , &H00 , &H0F , &H0F , &H00 , &H00 , &H83 , &H81 , &H40 , &H20 , &H20 , &H10 , &H08 , &H88,
Data &H04 , &H04 , &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H40,
Data &H00 , &H08 , &H04 , &H04 , &H02 , &H02 , &H01 , &H80 , &HC0 , &H10 , &H10 , &H08 , &H0C , &H08 , &H00 , &H00,
Data &H03 , &HE3 , &H3E , &H0E , &H3F , &H38 , &H60 , &H00 , &H00 , &H1F , &H0F , &H08 , &H04 , &H04 , &H02 , &H80,
Data &H80 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H14 , &H22 , &H21 , &H41 , &H40 , &H80 , &H80 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40,
Data &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1F , &H30 , &H20 , &H20 , &H10,
Data &H0C , &H04 , &H00 , &H04 , &H03 , &H00 , &H00 , &H00 , &H00 , &H00 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04,
Data &H02 , &H06 , &H09 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H04 , &H04 , &H08 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20,
Data &H20 , &H40 , &H40 , &H80 , &H01 , &H02 , &H02 , &H04

Img2:
Data &H00 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00,
Data &H00 , &H02 , &H04 , &H04 , &H08 , &H10 , &H20 , &H20 , &H40 , &H80 , &H02 , &H04 , &H04 , &H08 , &H10 , &H90,
Data &HA0 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04 , &H02 , &H02 , &H81 , &H80 , &H40 , &H40 , &H00,
Data &H10 , &H10 , &H08 , &HF8 , &HFC , &H02 , &H02 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H04 , &H18 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H01 , &H02 , &H04 , &H04 , &H08 , &H90 , &H40 , &H40 , &H20 , &H20 , &H10 , &H08 , &H08 , &H04 , &H04,
Data &H02 , &H01 , &H01 , &H00 , &HC0 , &HE0 , &HC0 , &H00 , &H00 , &HF8 , &HFC , &H00 , &H00 , &HFF , &HFF , &H08,
Data &H08 , &H84 , &H84 , &H00 , &H00 , &H00 , &H00 , &H1F , &H0F , &H00 , &H80 , &H40 , &H40 , &H20 , &H10 , &H10,
Data &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H00 , &H00 , &H60 , &H80 , &H00 , &H00 , &H03 , &H04 , &H18 , &H60,
Data &H80 , &H00 , &H00 , &H00 , &H03 , &H04 , &H08 , &H30 , &H40 , &H80 , &H00 , &H00 , &H00 , &H80 , &H40 , &H40,
Data &H21 , &H22 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &HC1 , &HC0 , &HE0 , &H00 , &H00 , &H80 , &H78,
Data &HFC , &HFC , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &HFF , &H7F , &H00 , &H03 , &H06 , &H1F , &H0F , &H00,
Data &H00 , &H83 , &H43 , &H41 , &H21 , &H20 , &H10 , &H08 , &H08 , &H04 , &H02 , &H02 , &H01 , &H21 , &H40 , &H40,
Data &H80 , &H80 , &H00 , &H01 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H00 , &H00 , &H01 , &H06 , &H18,
Data &H60 , &H80 , &H00 , &H80 , &H80 , &H43 , &H44 , &H20 , &H10 , &H10 , &H08 , &H08 , &H04 , &H82 , &H02 , &H01,
Data &H01 , &HE0 , &H20 , &H00 , &H00 , &HF8 , &HFC , &H44 , &H22 , &H22 , &H11 , &H00 , &H00 , &HFF , &HFF , &H01,
Data &H3E , &H30 , &H0F , &H00 , &H0F , &H0F , &H00 , &H00 , &H83 , &H81 , &H40 , &H20 , &H20 , &H10 , &H08 , &H88,
Data &H04 , &H04 , &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40,
Data &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H40,
Data &H00 , &H08 , &H04 , &H04 , &H02 , &H02 , &H01 , &H80 , &HC0 , &H10 , &H10 , &H08 , &H0C , &H08 , &H00 , &H00,
Data &H03 , &HE3 , &H3E , &H0E , &H3F , &H38 , &H60 , &H00 , &H00 , &H1F , &H0F , &H08 , &H04 , &H04 , &H02 , &H80,
Data &H80 , &H40 , &H20 , &H20 , &H10 , &H10 , &H08 , &H04 , &H14 , &H22 , &H21 , &H41 , &H40 , &H80 , &H80 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40,
Data &H40 , &H80 , &H00 , &H00 , &H00 , &H01 , &H02 , &H02 , &H04 , &H08 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1F , &H30 , &H20 , &H20 , &H10,
Data &H0C , &H04 , &H00 , &H04 , &H03 , &H00 , &H00 , &H00 , &H00 , &H00 , &H20 , &H10 , &H10 , &H08 , &H04 , &H04,
Data &H02 , &H06 , &H09 , &H08 , &H10 , &H20 , &H40 , &H40 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00,
Data &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H04 , &H04 , &H08 , &H08 , &H10 , &H10 , &H20 , &H20 , &H40 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H02 , &H04 , &H04 , &H08 , &H10 , &H10 , &H20,
Data &H20 , &H40 , &H40 , &H80 , &H01 , &H02 , &H02 , &H04

Таким образом я хочу выводить изображения поочередно с интервалом в 1 секунду.

2)Еще более интересующий меня вопрос - если открыть даташит на атмега8, то там написано, что флеш памяти для программ 8 кб. Но вот что интересно и вводит меня в ступор. Если просто взять проэкт автора статьи и скомпилировать его в .hex, то получаем: Bascom пишет при компиляции "Flash used - 55%", то есть как бы половина атмеги пустая, но вот выходной файл .hex имеет размер 13кб. Вот я и не могу понять как даже авторский проэкт в 13кб прошивается в атмегу с 8кб? Магия наверное. Скомпилировав "свой" проэкт, я получаю  "Flash used - 66%" и файл на 15кб. Вот и возник такой вопрос - это нормально и так и должно быть? А если нет - то как правильно скомпилировать?

Так как пока проверить код в железе нет возможности (еще едет), вот к Вам, знающим людям, за помощью и обращаюсь. Ниже прикрепляю видеофайл с  компиляцией проэкта автора статьи в Bascom.

 clip0002.avi

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
COKPOWEHEU    255

Лучше бы начали на ассемблере или хотя бы Си. Совсем рядом есть видеокурс, где рассматривается и дисплей от nokia3310.

55 минут назад, Zabar31 сказал:

при компиляции "Flash used - 55%", то есть как бы половина атмеги пустая, но вот выходной файл .hex имеет размер 13кб.

*.hex файл не бинарный, а текстовый. Каждый байт прошивки закодирован двумя символами (например, 0x5A это '5' и 'A', или 0x3541. Плюс служебная информация вроде адреса начала, LRC-кода и прочего.

58 минут назад, Zabar31 сказал:

Так как пока проверить код в железе нет возможности

Протеус в помощь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zabar31    9

COKPOWEHEU, за видеокурс - спасибо, буду изучать. По .hex тоже стало понятно, спасибо.

Про протеус думал, и даже пробовал, но вот у меня он не хочет запускать симуляцию, ругается на отсутствие dll файла экрана 3310, я даже скачивал с радиокота этот файл, но пока побороть ошибку не могу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zabar31    9

@COKPOWEHEU , да, оказывается 7-я версия нужна была, а я мучался с 8. На 7-й все сразу заработало.

И еще раз спасибо за видеокурс - очень интересно и главное обстоятельно рассказывают что, как и куда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: polych
      Здравствуйте.
      У меня возникла проблема в прошивке микроконтроллера Atmega8.
      Задача заключается в том чтобы сравнивалось опорное на напряжение АЦП с подаваемым на вход АЦП напряжением и далее результат выводился на дисплей. У меня возникли сложности с настройкой АЦП, как я думаю оно находится в спящем режим так как когда я загружаю hex файл в Proteus и запускаю пошаговую отладку, то мои условия не выполняются и в переменной в которую я прописываю значение подаваемого напряжения постоянно находится значение опорного напряжения.
      Код пишу в Atmel Studio 6 на С
      Симуляцию делаю в Proteus
      Очень нужна помощь
      Спасибо!
      Примерный код в Atmel,не судите строго только начинаю изучать микроконтроллеры
      #define F_CPU 1000000UL
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <util/delay.h>
      static volatile int u = 0;
      static volatile float v;
      int main(void)
      {
       DDRB=0xFF;
       PORTB=0x00;
       DDRC=0x00;
       PORTC=0xFF;
       
       //настройка АЦП//
       ADCSRA |=(1<<ADEN)//включение ацп
       |(1<<ADPS1)|(1<<ADPS0)|(1<<ADFR);//ADPS2-ADPS0-тактовая частота АЦП???
       //ADCRA=0x83
       ADMUX |= (0<<REFS1)|(1<<REFS0)//внешний ИОН
       |(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3); //вход PC0
       //ADMUX=0x00
          while(1)
          {ADCSRA |=(1<<ADSC);//начинаем преобразование
           while ((ADCSRA&(1<<ADIF))==0);//ждём флага окончание преобразование
          _delay_ms(5);
           u=ADCW;// считываем ADC
          
           v = (float) u*0.0048828;
           if (v>=2.1){
            PORTB=0x01;
           }
           else{
            PORTB=0xFF;
           }
           _delay_ms(5);
      Также начальный проект в протеус, опять же не судите строго)
      micro.pdsprj
    • Автор: paulb
      Есть задумка собрать вольтметр постоянного напряжения (до 1000В) на ГРИ, использовав за основу популярную схему часов. Либо на базе микросхемы ICL7107, если это возможно. Знающих прошу помочь.
    • Автор: admin
      Сайт Паяльник открывает обучающий видеокурс по AVR-микроконтроллерам.
      В этой теме "обратной связи" будем постепенно добавлять новые видеоролики с нашего канала. Здесь можно задавать вопросы, давать рекомендации, критиковать, оставлять отзывы и пожелания, а также запросы на тему будущих видеоуроков.
      Ведет видеокурс наш форумчанин kobzar.
      Профиль пользователя на сайте cxem.net. Там же финансовые реквизиты для тех, кто пожелает финансово отблагодарить автора данного видеокурса
      Подписка на YouTube канал
      Краткий обзор сред разработки для различных микроконтроллеров на сайте: http://cxem.net/software/soft_mcu.php
      Внимание начинающим! Перед тем, как задавать вопросы не по теме видеоуроков, прочитать:
      Статьи по МК для начинающих
      Книга по программированию микроконтроллеров AVR
      Также, здесь же на форуме рядом с этой темой смотрите прикрепленные темы: для начинающих, по языку Си и т.д. Все вопросы не по видеокурсу задавайте только там. С этой темы подобные вопросы удаляются
      Кракозябры вместо русских букв
      Ребята - спешу сообщить что найден метод борьбы с кракозябрами вместо русских символов, при работе с ЖК. Дело в том, что у некоторых из вас, проект создается в кодировке UTF-8, а наша библиотека работает только с ср1251
      Фикс:
      1.Открываем проект
      2. File - Advanced Save Options
      3. Вместо кодировки UTF-8 выбираем Cyrillic(Windows) - cp1251
      Сохраняем, сохраняем проект - компилируем!
      Добавлено 12.01.16 :
      Изменённые версии библиотеки lcd_5110 :
      От Alex - http://forum.cxem.ne...20#comment-2287906
      От COKPOWEHEU - http://forum.cxem.net/index.php?showtopic=136229&st=1840#comment-2373820
       
    • Автор: ruhi
      Меня тут порадовали задачкой для АВР (я когда то очень много таких порешал, на практике - напомнили молодость ):
      http://cxem.net/mc/mc446.php
      сформулирована так: Нужно два быстрых элемента "И" и одновибратор. Можно использовать серию 155 у которой время срабатывания даже меньше получается, но не подходит по энергопотреблению. Хотелось бы сделать это на Attiny13.
      Остановимся пока на 
      Я, соответственно, предложил реализацию:
      Можожно сделать так:
      loop1:
      in reg1, pina; 1-tick
      in reg2, pinb; 1-tick
      and reg1, reg2; 1-tick
      LSR reg1; 1-tick
      out portB, reg1; 1-tick
      rjmp loop1; 2-tick

      Это код на ассемблере , который реализует два «элемента И» на АВР со временем срабатывания около 1мкс, в зависимости от тактовой частоты МК.
      На частоте 16 MHz это 7/16 мк-секунды(7 ticks, на самом деле +4 = 11тиков максимум время срабатывания, позже поясню), входы элемента-И должны быть на одинаковых пинах условных портов A and B, а выходы следующие по старшинству биты-пины. Вообще говоря перед выводом в порт, скорее всего, нужно будет еще маску добавить это еще +1 тик!

      Цикл можно переделать на использование только одного порта. Мой вариант в закодированном архиве приатачен, ключ выложу через неделю!
      Мне интересно можно ли сделать быстрее чем у меня получилось! Сможет кто нибудь предложить вариант решения?
      В общем, похоже что, на ассемблере можно написать «два элемента И» со временем срабатывания около 1.5мкс даже на 10МГц при произвольном расположении ног на одном порту.
      bestAvrCodeForAnd.7z
    • Автор: paulb
      Прошу помочь изменить прошивку из проекта http://cxem.net/mc/mc187.php
      Часы будут содержать 4 индикатора
      1) управление функционалом без изменений (время, дата, температура). 
      2) убраны индикаторы отвечающие за секунды, т.е. нужно вырезать функции 
      отображения секунд и года.
      3) отображение температуры без десятых градуса (индикатор №3 и №4).
      Схема: