Найдено 16 результатов

Dmti
Сб май 11, 2013 15:50:40
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 26
Просмотры: 4744

Re: Помогите разобратся с работой UART в atmege8

Смотрю осциллографом, как можно импульсы 4-5 раз в секунду не заметить? Но на всякий случай проверил не чего не меняется. А в эмуляторе всё в порядке.
Dmti
Сб май 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 ...
Dmti
Пн май 06, 2013 14:32:23
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 26
Просмотры: 4744

Re: Помогите разобратся с работой UART в atmege8

У меня издание второе а обложка похожа.
Dmti
Пн май 06, 2013 11:09:37
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 26
Просмотры: 4744

Re: Помогите разобратся с работой UART в atmege8

Унас или версия книги не та, или я читал не внимательно, но не нашел.
Dmti
Вс май 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 ...
Dmti
Вс май 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 ...
Dmti
Сб май 04, 2013 08:31:34
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 26
Просмотры: 4744

Re: Помогите разобратся с работой UART в atmege8

Вообще мне не совсем понятно, откуда берётся эта функция

Код: Выделить всё

loop_until_bit_is_set(UCSRA, 5);
где она определена? Если можно расскажите поподробней.
Dmti
Сб май 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 ...
Dmti
Сб май 04, 2013 07:18:23
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 26
Просмотры: 4744

Re: Помогите разобратся с работой UART в atmege8

То есть разрешить

Код: Выделить всё

 //UDRIE=1 и прерывания разрешены (бит I=1 в регистре SREG) :
Сейчас попробую.
Dmti
Сб май 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 ...
Dmti
Пт май 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 и не ...
Dmti
Пт май 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 появился логический ноль, и всЁ.
Dmti
Пт май 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 ...
Dmti
Чт май 02, 2013 09:57:21
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 26
Просмотры: 4744

Помогите разобратся с работой UART в atmege8

По случаю достался релейный блок от газоанализатора "Хоббит" с убитым камнем
(Atmega8L). Камень перепаял на новый и теперь надо в него что-нибудь залить. В середине
90х программировал на турбо си то этому решил что-нибудь с ваять сам. Скачал AVR Studio 5 и
после копирования и объединения ...
Dmti
Чт май 02, 2013 08:42:54
Форум: AVR
Тема: Помогите разобратся с работой UART в atmege8
Ответы: 7
Просмотры: 1171

Помогите разобратся с работой UART в atmege8

По случаю достался релейный блок от газоанализатора "Хоббит" с убитым камнем (Atmega8L). Камень перепаял на новый, и теперь надо в него что-нибудь залить. В середине 90-х программировал на турбо си, поэтому решил что-нибудь сваять сам. Скачал AVR Studio 5, и после копирования и объединения ...

Перейти к расширенному поиску