Сообщение от freonSZ
|
На басике !!! да именно так! 0x20 не бычат!!! может как можно переиграть
|
JTAG нуно отрубать естественно.. И...
Читаем в даташите, что все регистры управления выше адреса 0x60 адресуются не как регистры командами OUT и INP, а как яейки RAM командами STS и LDS.....
Следовательно, могем только писать целиком или читать, а побитно не могем, вот так нас Атмел подкузьмила ))))
Писал на амсе для LCD на PORTF.
Вместо порта нужно использовать переменную, и после изменений битов выводить её в порт. Команд бейсика не знаю... подправьте синтаксис сами.
что то типа этого.
Код:
|
;переменные
copy_out_port;
;вывод команды
copy_out_port=DATA4bit & RSbit & RWbit & ENbit ;RS=0 RW=0 EN=0 data=xxxx
out portf=copy_out_port ;подготовка к выводу команды
copy_out_port=DATA4bit & RSbit & RWbit | ENbit ;RS=0 RW=0 EN=1 data=xxxx
out portf=copy_out_port ;подготовка к записи команды
copy_out_port=DATA4bit & RSbit & RWbit & ENbit ;RS=0 RW=0 EN=0 data=данные команды
out portf=copy_out_port ;запись команды(первой тетрады)
copy_out_port=DATA4bit & RSbit & RWbit | ENbit ;RS=0 RW=0 EN=1 data=xxxx
out portf=copy_out_port ;подготовка к записи команды
copy_out_port=DATA4bit & RSbit & RWbit & ENbit ;RS=0 RW=0 EN=0 data=данные команды
out portf=copy_out_port ;запись команды(второй тетрады)
;вывод символа
copy_out_port=DATA4bit | RSbit & RWbit & ENbit ;RS=1 RW=0 EN=0 data=xxxx
out portf=copy_out_port ;подготовка к выводу символа
copy_out_port=DATA4bit | RSbit & RWbit | ENbit ;RS=1 RW=0 EN=1 data=xxxx
out portf=copy_out_port ;подготовка к записи символа
copy_out_port=DATA4bit | RSbit & RWbit & ENbit ;RS=1 RW=0 EN=0 data=данные символа
out portf=copy_out_port ;запись символа (первой тетрады)
copy_out_port=DATA4bit | RSbit & RWbit | ENbit ;RS=1 RW=0 EN=0 data=данные символа
out portf=copy_out_port ;запись символа (второй тетрады) |