Например TDA7294

Форум РадиоКот • Просмотр темы - UART mega8515 нет сигнала на пине TXD (AVRSTUDIO 6.2)
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб июл 26, 2025 04:04:44

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: UART mega8515 нет сигнала на пине TXD (AVRSTUDIO 6.2)
СообщениеДобавлено: Вс мар 20, 2016 16:14:23 
Потрогал лапой паяльник

Зарегистрирован: Чт сен 24, 2009 17:22:51
Сообщений: 390
Откуда: UK
Рейтинг сообщения: 0
Помогите разобраться Вот код для mega8515 При передаче символа через UART пин не дергается ( 0 и 1 устанавливается при записи в порт PD1 - Проверено на другом коде):


#define F_CPU 11058200UL

#if defined(F_CPU)
//fosc = 11.0592 MHz U2X = 0 UBRR=5
#define BR_115200 5 // boundrate 115200
//#define B8_2 2 //8 bits data 2 stop bits
#define B8_1 1 //8 bits data 2 stop bits

#endif


#ifndef BR_115200
#define F_CPU 11058200UL
#define BR_115200 71 //boundrate 9600
#endif


#include <avr/io.h>
#include <avr/eeprom.h> // не забываем подключить
#include <util/delay.h> // нужна для функции _delay_ms();
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
#include <string.h>

void Port_init(void)
{
//1 = output, 0 = input
DDRA = 0; // устанавливаем PORTA как вХОД
DDRB = 0XFF; // устанавливаем PORTB как выход
DDRC = 0XFF; // устанавливаем PORTD как выход кроме PD01

DDRD=0b11111110;
PORTD=0b11111110;//все на выход кроме нулевого


SFIOR|=(1<<PUD); //off pullup

}

void usart_transmit( unsigned char data)
{
while (!( UCSRA & (1<<UDRE)))
UDR = data;
//_delay_ms(30);
}



#if defined(B8_1)
void usart_init(unsigned int bd) // USART initialization
{
/*
If URSEL is zero during a write operation, the UBRRH value will be updated.
If URSEL is one, the UCSRC setting will be updated.
*/

UCSRC &= ~_BV(URSEL);
/* Set baud rate */
UBRRH = (unsigned char)(bd>>8);
UBRRL = (unsigned char)bd;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN) | (1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1 << URSEL) | (0<<USBS) |(3<<UCSZ0);
}
#endif


#if defined(B8_2)
/* инициализаци¤ UART */
void usart_init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}

#endif





#define SW12_ON PORTD|=(1<<PD6)
#define SW12_OFF PORTD&=~(1<<PD6)




/***************************************************/
int main(void)
{

Port_init();
usart_init(BR_115200); // USART initialization


while(1)
{
usart_transmit(0x55);
SW12_ON;
_delay_ms(50);
SW12_OFF;
_delay_ms(50);

}
}


Вложения:
Комментарий к файлу: FUSSES
mega8515_fusses.JPG [19.44 KiB]
Скачиваний: 311
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: UART mega8515 нет сигнала на пине TXD (AVRSTUDIO 6.2)
СообщениеДобавлено: Вс мар 20, 2016 17:10:27 
Потрогал лапой паяльник

Зарегистрирован: Чт сен 24, 2009 17:22:51
Сообщений: 390
Откуда: UK
Рейтинг сообщения: 0
Проблема решена Надо было помянять Эти строчки местами

/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y