Страница 1 из 1

proteus vs cvavr

Добавлено: Ср авг 04, 2010 18:50:47
akori
третий день не могу разобраться в фундаментальном затыке
в протеусе собрал простую схемку с atmega16 + виртуальный терминал
синхронизация МК внешная - кварц на 8мГц
reset - через 10кОм на +5
далее, в бесплатной версии cvavr создаю простую программку которая через uart должна выводить строчку на терминал (стандартная ф-я библиотеки stdio - puts)
пока дело не касается работы с этой библиотекой все вроде работает, порт Б в цикле мигает, ошибок нет...
но как только разкомментируешь putchar('Q') - начинается затык...
код инициализации взят из хелпа cv

Код: Выделить всё

//Настройка параметров UART
/* quartz crystal frequency [Hz] */
#define xtal 8000000L
/* Baud rate */
#define baud 9600

// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0x18;
    UCSRC=0x86;
/* initialize the USART's baud rate */
    UBRRH=(xtal/16/baud-1) >> 8;
    UBRRL=(xtal/16/baud-1) & 0xFF;
сам цикл

Код: Выделить всё

while (1)
      {
      PORTB=0;
      for (i=0;i<60000;i++);
      PORTB=0xff;
      for (i=0;i<60000;i++);
       putchar('A');
      }
ткните носом куда копать?

Re: proteus vs cvavr

Добавлено: Ср авг 04, 2010 19:28:13
>TEHb<
Может с putchar что не то? Ну там буфер не объявлен или даже терминал не так настроен.... Попробуйте вместо

Код: Выделить всё

putchar('A');
написать

Код: Выделить всё

UDR='A';

Re: proteus vs cvavr

Добавлено: Чт авг 05, 2010 02:48:05
akori
бррр...
в общем, ночером снес нафик все выкрутасы и стал пробовать на голой связке atmega16 + VT
и нефига, глючит...
поставил atmega32 с тем же кодом - работает... :kill:

Re: proteus vs cvavr

Добавлено: Чт авг 05, 2010 21:27:10
codenamehawk

Код: Выделить всё

while (1)
      {
      PORTB=0;
      for (i=0;i<60000;i++);
      PORTB=0xff;
      for (i=0;i<60000;i++);
       putchar('A');
      }
ткните носом куда копать?
Попробуйте так

Код: Выделить всё

char k;

k='A';
putchar(k);

У вас 'A' хранится во FLASH, а должна в SRAM
Если проект создан визардом, должен работать.

Код: Выделить всё

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
И установите скорость виртуал терминал 9600

Re: proteus vs cvavr

Добавлено: Пт авг 06, 2010 16:42:27
>TEHb<
А вообще нафиг эмуляторы, даёшь железо!

Re: proteus vs cvavr

Добавлено: Пт авг 06, 2010 17:23:49
codenamehawk
>TEHb< писал(а):А вообще нафиг эмуляторы, даёшь железо!
В железе, без JTAG, отладка займет больше времени.
Удобнее отладить в эмуляторе, потом в железо.

Re: proteus vs cvavr

Добавлено: Вт авг 10, 2010 09:56:47
Aheir
Тема по Протеусу - в разделе "Цифровая техника"!