3d_killer

2 и более USART порта & Atmel studio

50 сообщений в этой теме

BARS_    718

Тут работа без прерываний. Чем смотрите выход UART?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

вот полный листинг теста

/*
 * GccApplication1.c
 *
 * Created: 05.10.2017 18:57:56
 * Author : user
 */ 
//Частота МК
#define  F_CPU 16000000UL
//Основные библиотеки
#include <avr/io.h>
#include <util/delay.h>
//Библиотека сторожевого таймера
#include <avr/wdt.h>
//Подключаем библиотеку прерываний
#include <avr/interrupt.h>

#define FOSC 16000000
// Clock Speed
#define BAUD 57600
#define MYUBRR FOSC/16/BAUD-1

void USART_Init(unsigned int ubrr)
{
	/*Set baud rate */
	UBRR1H = (unsigned char)(ubrr>>8);
	UBRR1L = (unsigned char)ubrr;
	UCSR1B = (1<<RXEN1)|(1<<TXEN1);
	/* Set frame format: 8data, 2stop bit */
	UCSR1C = (1<<USBS1)|(3<<UCSZ01);
}
void USART_Transmit( unsigned char data )
{
	/* Wait for empty transmit buffer */
	while ( !( UCSR1A & (1<<UDRIE1)) )
	;
	/* Put data into buffer, sends the data */
	UDR1 = data;
}
//*************************************************
//Прерывание по таймеру
//*************************************************
ISR( TIMER1_OVF_vect )
{
	PORTC^= (1>>0);
}



//void USART_Transmit( unsigned char data ) //Функция отправки данных
 //{
	// while ( !(UCSR1A & (1<<UDRE)) ); //Ожидание опустошения буфера приема
	 //UDR1 = data; //Начало передачи данных
// }


	
	
int main(void)
{
	//*************************************************
	//УСТАНОВКА ПОРТОВ
	//*************************************************
	DDRD |= 1>>3;
	PORTC &= ~(1>>3);
	
	
	
	//Установка порта на выход
	DDRC |= 1>>0;
	//Установка на порту 0
	PORTC &= ~(1>>0);
	//*************************************************
	
	USART_Init(MYUBRR);
	//*************************************************
	//Запуск сторожевого таймера
	//*************************************************
	wdt_enable(WDTO_2S);
	//*************************************************
	
	//*************************************************
	//Настройка USART
	//*************************************************
	
	
	//*************************************************
	//Настройка прерывания (ISR( TIMER1_OVF_vect ))
	//*************************************************
	//TCCR1B =(0<<CS12)|(0<<CS11)|(1<<CS10);//1
	//TCCR1B =(0<<CS12)|(1<<CS11)|(0<<CS10);//8
	//TCCR1B =(0<<CS12)|(1<<CS11)|(1<<CS10);//64
	TCCR1B =(1<<CS12)|(0<<CS11)|(0<<CS10);//256
	//TCCR1B =(1<<CS12)|(0<<CS11)|(1<<CS10);//1024
	TIMSK |= (1<<TOIE1);
	//Разрешаем глобальные прерывания
	sei();
	//*************************************************
   
   
   
   //*************************************************
   //Основной цикл программы
   //*************************************************
    while (1) 
    {
		USART_Transmit('d');
		//Инвертирование порта
		//PORTC^= (1>>0);
		_delay_ms(300);
		//USART_Transmit('2');
		//Сброс сторожевого таймера
		wdt_reset();
    }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    718

Уберите сторожевой таймер и отключите его фьюзом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

отключил ничего не поменялось, смотрю на порте платой ардуины (монитор порта), плату подключил к этой через Rx Tx накрест, светодиод быстро помаргивает на плате ардуины в мониторе редко появляются квадратики

2017-10-06_17-56-21.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    718

Попробуйте разные скорости. И лучше прогой Com Port Toolkit

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

Так одно же сообщение, а они должны валиться раз в секунду, понятно если скорость не та то будут эроглифы, а тут одно иногда проскочит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    32
45 minutes ago, 3d_killer said:

/* Set frame format: 8data, 2stop bit */ UCSR1C = (1<<USBS1)|(3<<UCSZ01);

Надо UCSZ10 и два стоп бита в терминальной программе желательно поставить м скорость

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    718
Так одно же сообщение, а они должны валиться раз в секунду, понятно если скорость не та то будут эроглифы, а тут одно иногда проскочит
А что в качестве usb-uart адаптера используется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    718

Именно ардуина или только uart адаптер на плате?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

Там же встроенный usb com конвертор

Ну на ней адаптер который, цепляюсь тремя проводами, в программе которую вы сказали выбираю порт адаптера и скорость которую задал в программе

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4
51 минуту назад, snn_krs сказал:

Надо UCSZ10 и два стоп бита в терминальной программе желательно поставить м скорость

Очень помогли бы для теста написав сказанное кодом, дело в том что я с ардуинки перехожу  на с++ язык знаю плохо 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    718

Ээээ, вы переходите на Си, а вот в ардуйне как раз был C++...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    32
2 hours ago, 3d_killer said:

/* Set frame format: 8data, 2stop bit */ UCSR1C = (1<<USBS1)|(3<<UCSZ01);

UCSR1C = (1<<USBS1)|(3<<UCSZ10);

Или так с одним стоп-битом

UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4
12 минуты назад, BARS_ сказал:

Ээээ, вы переходите на Си, а вот в ардуйне как раз был C++...

Там примеров больше и не думаешь какие флаги где поставить есть куча библиотек

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    381

Я ж вам говорил: берете образец кода для МК с единственным USART и дописываете единичку к РЕГИСТРАМ, а вы еще в имена битов полезли... Ну если ленитесь читать даташит, как именно биты поименованы, хотя бы просто делайте 1 в 1 то, что вам советуют. 

Для начала я бы рекомендовал разобраться, как связана у вас прошивка с исходниками - почему вдруг не прошивалось? Лично я такое впервые встречаю, чтобы строчки в программе, не вызывающие ошибку компиляции, каким-то чудом не давали прошивать МК! Разберитесь с чудесами, потом и реальными проблемами можно будет заняться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    297
5 часов назад, 3d_killer сказал:

//************************************************* //УСТАНОВКА ПОРТОВ //*************************************************

DDRD |= 1>>3;

Стрелочки сдвига - в обратную сторону.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4
21 час назад, ARV сказал:

Я ж вам говорил: берете образец кода для МК с единственным USART и дописываете единичку к РЕГИСТРАМ, а вы еще в имена битов полезли... Ну если ленитесь читать даташит, как именно биты поименованы, хотя бы просто делайте 1 в 1 то, что вам советуют. 

Для начала я бы рекомендовал разобраться, как связана у вас прошивка с исходниками - почему вдруг не прошивалось? Лично я такое впервые встречаю, чтобы строчки в программе, не вызывающие ошибку компиляции, каким-то чудом не давали прошивать МК! Разберитесь с чудесами, потом и реальными проблемами можно будет заняться.

я такое сам в первый раз заметил на мк атмега 128, на других такого не было

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
artos5    286

Могу вечером дать пример кода где у меня пашет два юарта . Мк Атмега128

    

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

сегодня ковырялся, заменил файлы в AVRDUDE_PROG33 из WINAVR и начало прошиваться без ошибок, скетч из ардуины заработал.

все же кочу слезть с ардуины, если не сложно скиньте конечно пример, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
artos5    286

Вот :

    https://drive.google.com/file/d/0BxEy5lBKNE0NajVXdVIwY0pPOU0/view?usp=drivesdk

 

Посмотрел код , в нем прием в двух юартах реализован по прерыванию . А печатает в нулевой только . Но и во второй напечатать без проблем вообще :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Отличаю. Скрншоты, увы, это понимать не помогает. Знаете, это, как иностранный язык - буквы знаю, прочесть могу, понять - ох, как не всегда. Помилуйте, батенька! И много ли у Вас моделей с сотнями элементов? А, делать очевидное - смотреть только в нужных Вам точках. Ремонтируя, к примеру, телевизор, Вы что, перемеряете напряжения на абсолютно всех выводах элементов? Впрочем, дискуссия ни о чём. Вы изучили что то своё, я  - своё. И, изучать "параллельный" симулятор практического смысла не вижу. Даже для того, чтобы научиться понимать Ваши скриншоты.
    • Вы "уважаемый" не приплетайте в тему Ланзара другие самоделы, думаю если пройдетесь по этой же теме, то найдете такую реализацию в этой ветке, или за Вас искать?. И если есть более весомые доводы (кроме: Это изврат, в реальных устройствах никто не ставит и Экзотерика) по отсутствию влияния CRC фильтра в питании на пульсации питающего напряжения, то просьба обосновать (измерения, опыты, формулы, своя реализация Ланзара). И прекращайте Провоцировать офтоп. Перемещайтесь в тему о питании УМЗЧ если вопрос глобально хотите расширить, или будьте любезны в рамках темы.. Только не вам должны доказывать, а Вы обоснуйте свои доводы.. 
    • Игнор. Вы в моём чёрном списке. @kotosob тоже в чёрном списке. Игнор.   Знания. Как кто-то сказал знания - это деньги. Меняет принцип работы ламп, полупроводниковых приборов. Уметь правильно подсчитывать энергию на основе иерархии уровней энергий.
    • Продаются 2 корпуса от ресиверов BBK AV-220. Первый полностью выпотрошен, но дисплей, кнопки/крутилки/болтики/радиаторы и подставки под них все на месте. Где то в кладовке может что и осталось от основной платы. Комплектность второго на фото - не хватает основного трансформатора и платы усилителя. Основная плата, входы/выходы, декодер, контроллер дисплея, крутилки/кнопки/болтики  - все на месте.  Индикация рабочая 100%. Ссылку на сервис мануал могу дать, если кто то задумает дисплей и регуляторы под свои задачи запрограммировать и  использовать.   По конструкции корпуса очень неплохие - толстый металл, вся обвеска снимается без проблем, останется только днище на ножках. Крышка со сплошной перфорацией. Когда то в аналогичном жила ЭА2014 - вентиляции хватало вполне, места с избытком.   По ценам - первый экземпляр 1500, Этот пусть будет 2500. Оба сразу отдам за 3500. Доставка на покупателе. По доставке - КИТ или могу выложить на Авито и получите по Авито.Доставка. Находятся в Москве.
    • Так что НОВОГО позволяет новая теория по сравнению со старой?  Ну вот нафига мне вычисление хорошо известного "Пи", но неким новым способом, если синус угла даже в военное время все-равно не достигнет четырех? А что меняет приставка "термо-"? В ядра я не имею оборудования лезть, поэтому квантовые уровни меня практически не интересуют, а что касается физического мира (до атомов-молекул), так вся энергетика (что гидро-, что угле- (в т.ч. угле-водородных) носителей) основана лишь на силах гравитации и солнечного излучения, так что все остальные преобразования на пути к розетке это лишь преобразования. 1. Так что ваши изыскания позволяют достичь в области электрогенерации (согласно названию темы)? 2. Изложите закон "о двух иерархиях уровней энергий" сделав это на качественном уровне, словами, как сэр Ньютон еще 300 лет назад делал.
    • Вечером покажу после работы, подавал сигнал с телефона (Тон-генератор) Забыл вчера по фоткать...