Страница 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 отличий.

хотя повторюсь, за "Си с большим количеством ассемблерных вставок" начинающих бить надо нещадно, а тех, кто так учит - линчевать безжалостно!