Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

USART на Atmega48

Непрочитано 22.10.2010, 10:33  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 141
Сказал спасибо: 11
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию USART на Atmega48

Господа есть проблема, не хочет работать USART на Atmega48.
Пробовал прогу на Atmega8, 16 всё прекрасно работает, естественно необходимо только настроить регистры под данные МК, а вот на 48 работать не хочет, почему-то не хочет уходить в прерывание, может, кто подскажет, в чём дело?
Пробовал писать данную прогу на AVR Studio, теже грабли.

/************************************************** ***
This program was produced by the
CodeWizardAVR V2.03.8a Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : USART
Version : 0.1
Date : 22.10.2010
Author : vgtmaster
Company : vgtmaster
Comments: No comment


Chip type : ATmega48
Program type : Application
Clock frequency : 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/

#include ‹mega48.h›

// Standard Input/Output functions
#include ‹stdio.h›
#include ‹m8_128.h›

#define RXC0 7
#define TXC0 6
#define UDRE0 5
#define FE0 4
#define DOR0 3
#define UPE0 2
#define U2X0 1
#define MPCM0 0

#define RXCIE0 7
#define TXCIE0 6
#define UDRIE0 5
#define RXEN0 4
#define TXEN0 3
#define UCSZ02 2
#define RXB80 1
#define TXB80 0

#define UMSEL01 7
#define UMSEL00 6
#define UPM01 5
#define UPM00 4
#define USBS0 3
#define UCSZ01 2
#define UCSZ00 1
#define UCPOL0 0


unsigned char bcounter=0;
char ReceiveString [32]="vgt ";

// Declare your global variables here
interrupt [USART_RXC]void USART_RX_interrupt (void)
{short i;
//UCSR0B = (1‹‹RXEN0)|(1‹‹TXEN0);
bcounter = 0;
ReceiveString[bcounter] = UDR0; /* Get and return received data from buffer */
bcounter+=1;
for ( i=0 ; i ‹ 3500 ; i++ )
{if (UCSR0A & 0x80)
{i=0;
ReceiveString[bcounter++] = UDR0;
}
}
}

////////Функция передачи данных///////////
void USART_Transmit(char count,char * buf) //count колличество передаваемых байт, buf массив.
{unsigned char i=0;
{for (i=0;i‹count;i++)
{while ( !( UCSR0A & (0‹‹RXC0|0‹‹TXC0|1‹‹UDRE0|0‹‹FE0|0‹‹DOR0|0‹‹UPE0|0 ‹‹U2X0|0‹‹MPCM0)) ){;}
UDR0 = buf[i];
}
}
}
//////////////////END/////////////////////

void USART_Init( unsigned int ubrr)
{/* Set baud rate */
UBRR0H = (unsigned char)(ubrr››;
UBRR0L = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSR0B = (0‹‹RXCIE0)|(0‹‹TXCIE0)|(0‹‹UDRIE0)|(1‹‹RXEN0)|(1‹ ‹TXEN0)|(0‹‹UCSZ02)|(0‹‹RXB80)|(0‹‹TXB80);
/* Set frame format: 8data, 2stop bit */
UCSR0C = ((0‹‹UMSEL01)|(0‹‹UMSEL00)|(0‹‹UPM01)|(0‹‹UPM00)|( 1‹‹USBS0)|(0‹‹UCSZ01)|(3‹‹UCSZ00)|(0‹‹UCPOL0));
}


void main(void)
{
// Global enable interrupts
#asm("sei")

USART_Init( 0x33); //9600 на 8МГц
// USART_Transmit(ReceiveString);

while (1)
{if (bcounter)
{
bcounter=1;
USART_Transmit(bcounter,ReceiveString); //Передача количества байт (bcounter, массив ReceiveString)
bcounter=0;
ReceiveString[0]=0;
}
};
}
Реклама:
vgtmaster вне форума  
Непрочитано 22.10.2010, 11:39  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: USART на Atmega48

// Standard Input/Output functions
#include ‹stdio.h›
#include ‹m8_128.h›

м48 и м8...128 - разные чипы, имена и расположение регистров разные
niXto вне форума  
Непрочитано 22.10.2010, 13:24  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 141
Сказал спасибо: 11
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию Re: USART на Atmega48

Сообщение от niXto Посмотреть сообщение
м48 и м8...128 - разные чипы, имена и расположение регистров разные
Это мне известно, что в данной проге не так? Почему не работает прерывание?
vgtmaster вне форума  
Непрочитано 22.10.2010, 23:53  
awtoap
Прописка
 
Регистрация: 11.04.2006
Сообщений: 197
Сказал спасибо: 86
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
awtoap на пути к лучшему
По умолчанию Re: USART на Atmega48

Так вам же выше написали...адреса прерываний(как и их количество) отличаются...это Вам что нибудь говорит???
awtoap вне форума  
Непрочитано 23.10.2010, 12:04  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 141
Сказал спасибо: 11
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию Re: USART на Atmega48

Сообщение от awtoap Посмотреть сообщение
Так вам же выше написали...адреса прерываний(как и их количество) отличаются...это Вам что нибудь говорит???
Я понял, спасибо.
vgtmaster вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Фантомное" питание контроллера по USART MasterMushi Микроконтроллеры, АЦП, память и т.д 8 07.10.2010 22:38
Bluetooch - USART переходник nml Микроконтроллеры, АЦП, память и т.д 12 17.08.2010 13:05
Usart (УСАПП) wolfinstein Микроконтроллеры, АЦП, память и т.д 15 18.02.2010 19:15
Почему USART работает правильно? zhan99999 Микроконтроллеры, АЦП, память и т.д 10 24.01.2010 15:39
Странность с USART в ATMega16 Archer07 Микроконтроллеры, АЦП, память и т.д 5 05.11.2009 20:27


Часовой пояс GMT +4, время: 07:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.