Страница 1 из 1
Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 13:13:50
Uklunok
Всем привет. Тут такое дело... Появилась новая дисциплина - Микропроцессорные системы, для меня новая).
На лабораторных работах используется стенд STK500 с микроконтроллером ATmega 16. Пользуюсь программой CodeVisionAVR, язык ассемблер.
Я в этом деле новичёк и нуждаюсь в помощи. Всё что угодно: ссылки на сайты, книжки, исходные коды, справочные данные. Может есть эмулятор стенда какой-нибудь??? Очень хотелось бы русскоязычную инфу по внутреннему содержимому микроконтроллера ATmega 16, сколько и какие имеются регистры, АЛУ, дешифратор и т.д.
ЕЩё вопросец: стенд STK500 имеет разъём COM. Проблема в том, что на ноутбуке нет COM порта)), но зато есть usb и vga. Существуют такие переходники: usb-com, или usb-vga???
Спасибо за понимание
P.S. Раньше имел дело с УМПК80, на процессоре КР580ВМ80А
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 13:53:48
Danko
Uklunok писал(а):Пользуюсь программой CodeVisionAVR, язык ассемблер.
CodeVisionAVR - для Си, а не для Ассемблера.
Uklunok писал(а):Существуют такие переходники: usb-com
Да существуют.
Uklunok писал(а):Существуют такие переходники: ... usb-vga

Вы вообще знаете, что такое VGA?
http://ru.wikipedia.org/wiki/VGA
Uklunok писал(а):Раньше имел дело с УМПК80, на процессоре КР580ВМ80А

Это ж сколь десятков лет назад?
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:10:41
ARV
пользоваться надо AVR Studio, а не этим ... тем более что в этом ... нет даже отладчика.
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:20:36
Vov123
Этот выдаёт файл.coff,который загружается в AVR Studio.
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:35:25
ARV
Vov123 писал(а):Этот выдаёт файл.coff,который загружается в AVR Studio.
ну и скажите мне, нафига ЭТОТ нужен, если студия и без него в состоянии с ассемблерными программами (и с Сишными) работать?! это ЕМУ студия нужна для отладки, а студии ОН не нужен и даром!
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:41:58
Vov123
Так toolchan,вроде тоже как довесок к студии(всмысле отладки).
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:48:15
ARV
студия укомплектована ассемблерами двух видов и всем необходимым для отладки методом симуляции. как родного воспринимает STK500.
Си ставится отдельно, факт. но топикстартер об ассемблере речь вел - а с нми голенькая студия справляется на 5+. это вы попробуйте отладить что-либо в Code Vision-е вашем без студии...
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:51:55
Danko
Uklunok писал(а):... книжки...
Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel
Uklunok писал(а):... справочные данные ...
datasheet atmega16
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Чт фев 17, 2011 14:53:04
Vov123
Да,ладно,Вам.Молодой человек сделал описку,вероятней всего,вместо союза "и" поставил запятую.Не злитесь.Не буду Вас больше отвлекать.
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Пт фев 18, 2011 07:24:07
Uklunok
Немного оговорился, язык Си, но используется много ассемблерных вставок. Да и по - моему в CodeVision попроще код будет, полюс там ещё автоматически инициализируются порты ввода/вывода, регистры и т.д.
К примеру в CodeVision код:
Код: Выделить всё
#include <mega16.h>
void main(void)
{PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0xFF;
while (1) //цикл, выполняемый пока нет прерываний
{
#asm //начало ассемблерной вставки
IN R18,0x19 //читаем данные из порта А в регистр R18
OUT 0x18,R18 //записываем данные из регистра R 18 в порт В
#endasm //конец ассемблерной вставки
};
}
В AVRSTUDIO этот же код выглядит так:
Код: Выделить всё
.
include "m16def.inc"
.def temp = r18; // присвоение символьного имени регистру r18
ser temp // установка всех бит регистра r18
out DDRB,temp // инициализация порта B (работает как выход)
START: // метка относительного безусловного перехода
in temp,PINA // считывание состояния порта A в регистр r18
out PORTB,temp // вывод содержимого регистра r18 в РВВ PORTB
rjmp START // команда относительного безусловного перехода
Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Пт фев 18, 2011 07:28:53
Uklunok
Uklunok писал(а):Раньше имел дело с УМПК80, на процессоре КР580ВМ80А

Это ж сколь десятков лет назад?[/quote]
Ровно год назад))). Возни конечно много было... Минут 10 вбиваешь прогу в память, и от малейшеё вибрации всё сбрасывается

Re: Загрузите полезной информацией по STK500 и ATmega 16
Добавлено: Пт фев 18, 2011 08:52:04
ARV
Uklunok писал(а):Немного оговорился, язык Си, но используется много ассемблерных вставок. Да и по - моему в CodeVision попроще код будет, полюс там ещё автоматически инициализируются порты ввода/вывода, регистры и т.д.
К примеру в CodeVision код:
Код: Выделить всё
#include <mega16.h>
void main(void)
{PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0xFF;
while (1) //цикл, выполняемый пока нет прерываний
{
#asm //начало ассемблерной вставки
IN R18,0x19 //читаем данные из порта А в регистр R18
OUT 0x18,R18 //записываем данные из регистра R 18 в порт В
#endasm //конец ассемблерной вставки
};
}
В AVRSTUDIO этот же код выглядит так:
Код: Выделить всё
.
include "m16def.inc"
.def temp = r18; // присвоение символьного имени регистру r18
ser temp // установка всех бит регистра r18
out DDRB,temp // инициализация порта B (работает как выход)
START: // метка относительного безусловного перехода
in temp,PINA // считывание состояния порта A в регистр r18
out PORTB,temp // вывод содержимого регистра r18 в РВВ PORTB
rjmp START // команда относительного безусловного перехода
уважаемый, вы меня извините, но, как говорится, "буду краток, но резок": у вас приведе первый пример на
Си с ассемблерной вставкой (руки бы отбивал тем, кто такие примеры придумывает В КАЧЕСТВЕ ОБУЧАЮЩИХ), а второй пример -
чисто ассемблерный текст! поэтому говорить "что в студии посложнее будет" крайне неверно! нельзя сравнивать курицу и щуку!
ваш пример на
Си с ассемблерной вставкой будет выглядеть в студии так:
Код: Выделить всё
#include <avr/io.h>
void main(void){
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0xFF;
while (1){ //цикл, выполняемый пока нет прерываний
// начало вставки
asm volatile (
"IN R18,0x19 \n"
"OUT 0x18,R18 \n"
); // конец вставки
}
}
как говорится, найдите 10 отличий.
хотя повторюсь, за "Си с большим количеством ассемблерных вставок" начинающих бить надо нещадно, а тех, кто так учит - линчевать безжалостно!