отображение чисел в Virtual terminal
- Войдите на сайт для отправки комментариев
Пнд, 14/05/2012 - 22:07
есть микроконтроллер AT90S8515, 8 кнопок, 8 светодиодов (для наглядности), и виртуал терминал. Принцип работы: какую кнопку нажмем, такой диод и загорится. В виртуал терминале отображается 0 и 1.
мне нужно сделать так, чтобы виртуал терминал отображал числа. от 0 до 2^8.
где можно найти нужную прошивку? заранее спасибо.
.include "8515def.inc" .def temp=r16 .def last_state=r18 .def present_state=r19 .def count=r20 .def serial=r21 .org 0 rjmp start .org OVF0addr rjmp tim0 start:ldi temp,LOW(RAMEND) out spl,temp ldi temp,HIGH(Ramend) out sph, temp ; rcall port_init rcall tim0_init rcall uart_init ; sei ; Loop: rjmp loop ; tim0: push temp in temp,sreg push temp ; com last_state in present_state,pina and last_state,present_state in temp,portb eor temp,last_state out portb,temp mov last_state,present_state ; ldi count, 8 next_bit: rol temp clr serial rol serial subi serial,-$30 rcall Trans dec count brne next_bit ; ldi serial,$0a rcall trans ; ldi serial,$0d rcall trans ; rcall receive ; pop temp out sreg, temp pop temp reti ; trans:sbis USR,UDRE rjmp trans out UDR,serial ret ; receive: sbic USR,RXC rjmp input ret input:in temp,UDR out portb,temp ret uart_init: ldi temp,0b00011000 out UCR, temp ldi temp,23 out UBRR, temp ret port_init: ldi temp,$ff out ddrb,temp ldi temp,$00 out portb,temp out ddra,temp ldi last_state,$ff ret ; tim0_init: ldi temp,$5 out tccr0,temp ldi temp,(1<<toie0) out timsk,temp ret
Преобразование Byte (Int, Long ...) в строку символов:
Результат мона слать по UART в терминал.
Писано из головы, поэтому может потребоваться проверка/настройка/отладка.
step962, здравствуйте. как этот кусок вставить в прошивку? прошивка на ассемблере. или в другое место?
Преобразование Byte (Int, Long ...) в строку символов:
+
Результат мона слать по UART в терминал.
Serial.print(val); ?
step962, здравствуйте. как этот кусок вставить в прошивку? прошивка на ассемблере. или в другое место?
Варианты:
Наименее гиморно - пункты 1 и 2. Какой именно, зависит от того что вам роднее asm или C++
на с++ намного проще, он понятен. но мне надо именно на ассемблере.
Leshak, можете мне помочь?
Еще один вариант
- поискать в Интернете ("AVR ASM digital to string conversion" или "AVR ASV преобразование числа в строку").
- среди бездны ссылок найти что-нибудь вроде:
www.avr-asm-tutorial.net/avr_en/calc/CONVERSION.html
- воспользоваться найденным
на с++ намного проще, он понятен. но мне надо именно на ассемблере.
Leshak, можете мне помочь?
Вряд ли. Я последний раз щупал ассемблер в 1991 году. С Питером Абелем подмышкой :) (кто помнит те времена - поймет ;)
Для меня и переход к C++ уже ощутимый downgrade с ставшего привычным C#
По асму, поищите народ на easyelectronics.ru, там больше шансов найти "тру микроконтрольщика". Я слабо себе представляю человека которые хорошо зная asm, полезет возявкатся с ардуиной (ну разве что разок посотмотреть/пощупать).