Найдено 16 результатов
- Сб май 11, 2013 16:13:57
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
- Сб май 11, 2013 15:50:40
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Смотрю осциллографом, как можно импульсы 4-5 раз в секунду не заметить? Но на всякий случай проверил не чего не меняется. А в эмуляторе всё в порядке.
- Сб май 11, 2013 13:13:10
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Упростил программу специально для форума, вырвал куски из программы. Почему не могу управлять PD2 из цикла? PD3 работает норм. примерно 4-5 раз в секунду моргает.
#include <avr/io.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
UBRRH = 0x00;
UBRRL = 0x19;
UCSRB = 0x18;
UCSRC ...
#include <avr/io.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
UBRRH = 0x00;
UBRRL = 0x19;
UCSRB = 0x18;
UCSRC ...
- Пн май 06, 2013 14:32:23
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
У меня издание второе а обложка похожа.
- Пн май 06, 2013 11:09:37
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Унас или версия книги не та, или я читал не внимательно, но не нашел.
- Вс май 05, 2013 16:06:41
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
INT0 32 нога говорит микросхеме фирмы silabs SP2102 (переходник USB->UART) в какую сторону данные передавать.
Читайте книгу Шпака,которая про C для AVR.
Сегодня дочитал, но если честно, выражения
loop_until_bit_is_set(UCSRA, 5);
так и не нашел, но нашел в даташите
C Code Example(1)
void ...
Читайте книгу Шпака,которая про C для AVR.
Сегодня дочитал, но если честно, выражения
loop_until_bit_is_set(UCSRA, 5);
так и не нашел, но нашел в даташите
C Code Example(1)
void ...
- Вс май 05, 2013 11:22:59
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Всё разобрался, INT0 надо принудительно перед записью в UDR устанавливать в 1, а после сбрасывать, обязательно. Vov123 правильно говорил про проверку но конструкции
while ( !(1<<UDRE) ) { UDR = Data[i] };
while ( !(1<<UDRE) ); UDR = Data[i];
по чему-то не работали, а так стало всё норм.
while ...
while ( !(1<<UDRE) ) { UDR = Data[i] };
while ( !(1<<UDRE) ); UDR = Data[i];
по чему-то не работали, а так стало всё норм.
while ...
- Сб май 04, 2013 08:31:34
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Вообще мне не совсем понятно, откуда берётся эта функция
где она определена? Если можно расскажите поподробней.
Код: Выделить всё
loop_until_bit_is_set(UCSRA, 5);- Сб май 04, 2013 07:40:39
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Изменил на
/разрешить прием, передачу данных и прерывание по приёму байта и опустошению буфера
UCSRB = ( 1 << TXEN ) | ( 1 << RXEN ) | (1 << RXCIE ) | (1 << UDRIE);
но не чего ни изменилось, только лампочка моргать перестала, а изначально я делал по этому примеру
http://www.atmega8.ru/wiki ...
/разрешить прием, передачу данных и прерывание по приёму байта и опустошению буфера
UCSRB = ( 1 << TXEN ) | ( 1 << RXEN ) | (1 << RXCIE ) | (1 << UDRIE);
но не чего ни изменилось, только лампочка моргать перестала, а изначально я делал по этому примеру
http://www.atmega8.ru/wiki ...
- Сб май 04, 2013 07:18:23
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
То есть разрешить
Сейчас попробую.
Код: Выделить всё
//UDRIE=1 и прерывания разрешены (бит I=1 в регистре SREG) :
- Сб май 04, 2013 05:51:42
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
А у вас прерывание сделано?
Мне казалось, что сделал
void uart_init( void )
{
//настройка скорости обмена
//инициализируем USART
UBRRH = 0;
UCSRA = 0; //Кварц 4мГц
UBRRL = 0x19; //Скорость на скорость 9600
//8 бит данных, 1 стоп бит, без контроля четности
UCSRC = ( 1 << URSEL ...
- Пт май 03, 2013 15:59:19
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
С такой конструкцией тоже самое
while (!(UCSRA&(1<<UDRE))); UDR='o';
while (!(UCSRA&(1<<UDRE))); UDR='k';
while (!(UCSRA&(1<<UDRE))); UDR='!';
while (!(UCSRA&(1<<UDRE))); UDR=(0x0d);
while (!(UCSRA&(1<<UDRE))); UDR==(0x0a);
Лампочка моргает на ногах 30, 31, 32 соответственно 0,1.0 и не ...
while (!(UCSRA&(1<<UDRE))); UDR='o';
while (!(UCSRA&(1<<UDRE))); UDR='k';
while (!(UCSRA&(1<<UDRE))); UDR='!';
while (!(UCSRA&(1<<UDRE))); UDR=(0x0d);
while (!(UCSRA&(1<<UDRE))); UDR==(0x0a);
Лампочка моргает на ногах 30, 31, 32 соответственно 0,1.0 и не ...
- Пт май 03, 2013 15:46:51
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Изменил вот на это:
if (!(UCSRA&(1<<UDRE))) UDR='o';
if (!(UCSRA&(1<<UDRE))) UDR='k';
if (!(UCSRA&(1<<UDRE))) UDR='!';
if (!(UCSRA&(1<<UDRE))) UDR=(0x0d);
if (!(UCSRA&(1<<UDRE))) UDR=(0x0a);
Лампочка с ново моргать стала, на ноге проца SP30 появился логический ноль, и всЁ.
if (!(UCSRA&(1<<UDRE))) UDR='o';
if (!(UCSRA&(1<<UDRE))) UDR='k';
if (!(UCSRA&(1<<UDRE))) UDR='!';
if (!(UCSRA&(1<<UDRE))) UDR=(0x0d);
if (!(UCSRA&(1<<UDRE))) UDR=(0x0a);
Лампочка с ново моргать стала, на ноге проца SP30 появился логический ноль, и всЁ.
- Пт май 03, 2013 15:02:17
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Re: Помогите разобратся с работой UART в atmege8
Вы хотите сказать, что я должен сделать вот так
unsigned char dt = ('O'); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt = ('k'); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt = ('!'); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt = (0x0d); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt ...
unsigned char dt = ('O'); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt = ('k'); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt = ('!'); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt = (0x0d); UDR = dt; loop_until_bit_is_clear(UCSRA, 5);
dt ...
- Чт май 02, 2013 09:57:21
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 26
- Просмотры: 4744
Помогите разобратся с работой UART в atmege8
По случаю достался релейный блок от газоанализатора "Хоббит" с убитым камнем
(Atmega8L). Камень перепаял на новый и теперь надо в него что-нибудь залить. В середине
90х программировал на турбо си то этому решил что-нибудь с ваять сам. Скачал AVR Studio 5 и
после копирования и объединения ...
(Atmega8L). Камень перепаял на новый и теперь надо в него что-нибудь залить. В середине
90х программировал на турбо си то этому решил что-нибудь с ваять сам. Скачал AVR Studio 5 и
после копирования и объединения ...
- Чт май 02, 2013 08:42:54
- Форум: AVR
- Тема: Помогите разобратся с работой UART в atmege8
- Ответы: 7
- Просмотры: 1171
Помогите разобратся с работой UART в atmege8
По случаю достался релейный блок от газоанализатора "Хоббит" с убитым камнем (Atmega8L). Камень перепаял на новый, и теперь надо в него что-нибудь залить. В середине 90-х программировал на турбо си, поэтому решил что-нибудь сваять сам. Скачал AVR Studio 5, и после копирования и объединения ...