МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение blindman » 11 май 2009, 19:02

Какой еще затык? Символ - это просто байт
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение MiBBiM » 11 май 2009, 19:08

какой байт какому символу соотвествует? вот в чем затык.
вобщем, последняя попытка: автору нужна функция на ассемблере, в которую заряжаешь символ, а на выходе - его код в таблице.
не знаю как это выглядит на асме, но:
Код: Выделить всё
function myfunc(c: char): byte;

и чтобы было так:
0x37=myfunc('7');
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение blindman » 11 май 2009, 19:10

наверно ты удивишься но '7' и 0x37 - это одно и то же :)
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение MiBBiM » 11 май 2009, 19:16

Duhas хочет вывести строку 'speed' и спрашивает, можно ли это сделать по-человечески в комплияторе(кстати, каком?) или придется последовательно набивать байты: 0x73 0x70 0x65 0x65 0x64.

Добавлено спустя 33 секунды:
P.S. ничуть не удивился :)
MiBBiM писал(а):ну дык чтобы на терминалке вывести число семь, ему а самом деле надо послать не 0x07, а 0x37 - код таблицы, соотвествующий символу '7'
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Duhas » 11 май 2009, 19:19

кто-то меня понимает )))

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

Добавлено спустя 2 минуты 12 секунд:
ПС, пишу в студии...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение blindman » 11 май 2009, 19:38

avr-gcc:
Код: Выделить всё
#define __SFR_OFFSET 0
#include <avr/io.h>

.section .text

; это строка
mystring:
.asciz  "Speed: "

; *******************************************
; функция вывода строки в UART
; *******************************************
print_flash_str:
    movw R30, R24
pfs_loop:
    ld  R24, Z+
    and R24, R24
    breq pfs_loop_end
pfs_busy:
    sbis UCSRA, UDRE
    rjmp pfs_busy
    out UDR, R24
    rjmp pfs_loop
pfs_loop_end:
    ret
; ................................................
; ................................................

; вызов функции

ldi R24, lo8(pm(mystring))
ldi R25, hi8(pm(mystring))
call print_flash_str


Читаем http://www.nongnu.org/avr-libc/user-man ... mbler.html
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение contr » 11 май 2009, 19:48

мне нужно терминалкой чтоб смотрелось....

1. составляете массив/таблицу ansi кодов 0..9 и интересующих символов.
2. посылаете в РС набор символов, скажем ячейки 10,11,12,12,13 /speed/, где лежат значения 53h=S,50h=P,45h=E,44h=D.
3. переводите бинарное в десятичное,
4. берете из массива ansi код цифры старшего разряда,
5. посылаете в РС и т.д.
Не очень красиво в плане ресурсов МК, но под терминал и в учебных целях сгодится. Тем более, что при работе с LCD примерно так все и происходит.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение blindman » 11 май 2009, 19:54

1. составляете массив/таблицу ansi кодов 0..9 и интересующих символов. - нафиг не надо
2. посылаете в РС набор символов, скажем ячейки 10,11,12,12,13 /speed/, где лежат значения 53h=S,50h=P,45h=E,44h=D. - пример выше
3. переводите бинарное в десятичное, - да
4. берете из массива ansi код цифры старшего разряда, - нафиг не надо, простая арифметическая опрерация (+0x30), включается в п. 3
5. посылаете в РС и т.д.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Duhas » 11 май 2009, 21:52

спс за пример функции, но ее как рас я себе отлично представлю))) собственно интересовался я вот этой сточкой только:

.asciz "Speed: "

ldi R24, lo8(pm(mystring))
ldi R25, hi8(pm(mystring))

hi8, lo8, pm описаны в io.h? и нужны ли они мне?

собсна директивы
.section .text
тоже было б неплохо описать чуток...

моя студия директиву .asciz не понимает...

Добавлено спустя 11 минут 15 секунд:
мб таким образов задефайнить символы все
.set a=0x41
.set _A=0x61

и в хидер засунуть.. а потом юзать так - .db a,_a

Добавлено спустя 58 минут 31 секунду:
прописав в файлике буквы англ и рус до меня дошло что они и так прописаны 'S' подобным образом :crazy: :crazy: :lol:
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение contr » 11 май 2009, 22:04

если символы и цифры переводить в ansi коды через функции - получим решение для РС. А если через массив/таблицу, то универсальный вариант, который подходит не только для терминала, но и других индикаторов
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don

Re:

Сообщение flyroman » 12 май 2009, 01:22

Digit писал(а):2 avr123.nm.ru

В курсе, в той задаче, где работа с флешь-памятью, на схеме устройства ошибка - ни сама память, ни светодиоды (оба) к питанию не подключены. :!:

Они подключены надписями на проводдниках схемы (http://www.avr123.nm.ru/z7.htm). Принято что проводники с одинаковым названием электрически соединены.


Сколько времени прошло а изображение все то же... И для новичка не факт, что эти проводники соеденины)) :wink:
А так материал отличный)
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение blindman » 12 май 2009, 04:52

Duhas писал(а):моя студия директиву .asciz не понимает...

Я ж написал - avr-gcc. Атмеловским ассемблером я не пользуюсь, не помню точно как там . Типа такого:
Код: Выделить всё
.device atmega32
.cseg

; это строка
mystring:
.db  "Speed: ", 0
; ................................................
; ................................................
; вызов функции
ldi R24, low(mystring)
ldi R25, high(mystring)
call print_flash_str
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Duhas » 12 май 2009, 05:13

ок, спс, так в студии работает... про гцц не заметил видимо...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Re:

Сообщение avr123.nm.ru » 12 май 2009, 08:15

flyroman писал(а):Сколько времени прошло а изображение все то же...

Вы не правы. Изображние было подкорректировано.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение SiemX » 19 май 2009, 16:27

что за контролер UB855D
SiemX
 
Сообщения: 159
Зарегистрирован: 08 май 2009, 21:21

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 3