Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Отладьте программу, которая вычисляет факториал числа, записанного в регистр R0 http://www.cyberforum.ru/avr/thread1438459.html
отладьте программу, которая вычисляет факториал числа, записанного в регистр R0. БЕЗ рекурсии
Atmega AVR микроконтроллер Подключение BTM-222 к ATMEGA16 Хочу создать машинку на bluetooth управлении. Нашел статью http://avr-mk.blogspot.com/2010/03/bluetooth-btm-222-avr.html Спаял по схеме. Создал схему с контроллером. Написал программу. Проверил в... http://www.cyberforum.ru/avr/thread1438143.html
Atmega AVR микроконтроллер По нажатию кнопки вывести данные на дисплей HD44780 ATMega16 AVR Studio GCC
Здравствуйте, уважаемые любители-программисты. Нуждаюсь в небольшой помощи по программированию микроконтроллера. Задача: необходимо по нажатию кнопки вывести данные на дисплей. Программировать...
Atmega AVR микроконтроллер Управление шаговым двигателем на Attiny2313
нужен программный код на C и С++ Короче имеются две кнопки(влево и вправо).При нажатии на них соответственно двигатель поворачивается влево и вправо.
Atmega AVR микроконтроллер Генератор специальных функций (синуса, пилы на базе ШИМ) http://www.cyberforum.ru/avr/thread1435467.html
Мне нужно создать генератор специальных функций: пилообразный, синусоидальный сигналы (на основе ШИМ). При этом отсчеты сигналов за период хранить в виде констант в памяти программ частота...
Atmega AVR микроконтроллер Cумма элементов массива (ATMega128, AVR Studio 4) Инициализировать массив натуральных чисел от 0 до 900 и найти сумму его эл-ов. .include "m128def.inc" .EQU Number = 900 .DSEG N: .BYTE 2 SUM: .BYTE 4 ARRAY .BYTE 2*NUMBER подробнее
flatgad
geJI<|>eP
186 / 186 / 18
Регистрация: 22.07.2010
Сообщений: 733
18.05.2015, 14:46  [ТС] 0

Работа с UART (ATMega328)

18.05.2015, 14:46. Просмотров 7264. Ответов 13
Метки (Все метки)

Ответ

Вроде победил немного доработав отправку байт. Если кому интересно :

Кликните здесь для просмотра всего текста

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
 
#define FOSC 8000000UL // Clock Speed
#define BAUD 4800L
#define MYUBRR FOSC/16/BAUD-1
 
#define BUFFER_UART_SIZE 16
uint8_t Nbyte=0;
static uint8_t buff_uart[BUFFER_UART_SIZE]; 
uint8_t buffer_index = 0;
//Очистка буфера
void ClearBuffUart(void){
    for(int i=0;i<BUFFER_UART_SIZE;i++){
        buff_uart[i]=0;
    }   
    Nbyte = 0;
}
//Инициализация уарт
void USORT_Init(unsigned int ubrr){
    UBRR0H = (unsigned char)(ubrr>>8);
    UBRR0L = (unsigned char)ubrr;
    UCSR0B = (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0)|(1<<TXCIE0);
    UCSR0C = (1<<USBS0)|(3<<UCSZ00);
}
//Передача масива
void USORT_Transmit(void)
{
    buffer_index=0;     
    UDR0 = buff_uart[0];    
    UCSR0B|=(1<<UDRIE0);
}
//Прерывание отправки данных
ISR (USORT_UDRE_vect){
    buffer_index++;
    if (buffer_index==Nbyte){
        UCSR0B &=~(1<<UDRIE0);
        ClearBuffUart();
    }       
    else{
        UDR0 = buff_uart[buffer_index];
    }   
}
//Прием данных
char USORT_Receive( void )
{
    while ( !(UCSR0A & (1<<RXC0)) );
    return UDR0;
}
//Прерывание по приему данных
ISR(USORT_RX_vect)
{
    unsigned char b;
    b = UDR0;
    buff_uart[Nbyte] = b;
    Nbyte++;
    if (b == (uint8_t)0xFF){
       USORT_Transmit();
    }
    if (Nbyte == BUFFER_UART_SIZE){
        USORT_Transmit();   
    }   
}
 
void main( void ){
    USORT_Init(MYUBRR);
    sei();
    while(1){
    }
}


Вернуться к обсуждению:
Работа с UART (ATMega328)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2015, 14:46

Работа с UART (Си, ATtiny 2313)
Дорогие формчане и знатаки по микроконтролёрам я Новичок в этом деле. У меня есть вопрос, есть...

работа с UART (IDE WinAVR)
предыстория: есть мега88 с кварцем 20МГц (уж какой нашёл), также есть код, сгенерённый CvAVR для...

MSP430F5435A. Работа с UART
написал такую програмку для отправки по UART... эффекта нету, со стороны схемы всё норм, в чём...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru