Подбирать под разную скорость надо задержку.
Найдено 30 результатов
- Чт июн 25, 2015 11:29:29
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Пробовал, конечно работает. Но как то не профессионально
.
Подбирать под разную скорость надо задержку.
Подбирать под разную скорость надо задержку.
- Чт июн 25, 2015 10:36:06
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
ARV писал(а):по-моему, вам надо ждать, когда оба бита будут установлены UDRE и TXC - это будет означать, что все данные переданы и буфер пуст. после этого можно и выключать драйвер.
ок, попробую вскоре
- Чт июн 25, 2015 09:46:40
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
В папке кожевижена есть пример 2usart_lcd - там есть готовый putchar.
case USART0: // the output will be directed to USART0
while ((UCSR0A & 1<<UDRE)==0);
UDR0=c;
по сути функция ждет освобождения буффера.
Посмотрите как в вашей готовой библиотеке putchar организован.
Как? мало знаний у ...
case USART0: // the output will be directed to USART0
while ((UCSR0A & 1<<UDRE)==0);
UDR0=c;
по сути функция ждет освобождения буффера.
Посмотрите как в вашей готовой библиотеке putchar организован.
Как? мало знаний у ...
- Чт июн 25, 2015 08:53:08
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Да. Обычно отправляю не один байт.
Прерывания только таймеры. Putchar в теле нет. Пользуюсь готовой библиотекой *.h
Вот так например:
if(CmndSymb[0]==Adres1){
Rs485SendEN=1;
UCSRA |= (1<<TXC);//sbros flaga txc
printf("Status from adres%u\nRel1=%i,Led2Value=%i(pr),TimeTmr=%u(min),", Adres1 ...
Прерывания только таймеры. Putchar в теле нет. Пользуюсь готовой библиотекой *.h
Вот так например:
if(CmndSymb[0]==Adres1){
Rs485SendEN=1;
UCSRA |= (1<<TXC);//sbros flaga txc
printf("Status from adres%u\nRel1=%i,Led2Value=%i(pr),TimeTmr=%u(min),", Adres1 ...
- Чт июн 25, 2015 08:26:09
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Так об этом я и не спорю.
Но всё же это для того чтобы понять что можно именно начать передачу (пихать в буфер
, т.е. когда пердатчик готов.
Но UDR не говорит нам что ВСЕ биты фышли и стоп бит тоже. Мне же надо знать именно когда вышел стоп бит и можно выключить передатчик DE в ADMке.
Но всё же это для того чтобы понять что можно именно начать передачу (пихать в буфер
Но UDR не говорит нам что ВСЕ биты фышли и стоп бит тоже. Мне же надо знать именно когда вышел стоп бит и можно выключить передатчик DE в ADMке.
- Чт июн 25, 2015 06:37:50
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
вот :
A data transmission is initiated by loading the transmit buffer with the data to be transmitted. The
CPU can load the transmit buffer by writing to the UDR I/O location. The buffered data in the
transmit buffer will be moved to the Shift Register when the Shift Register is ready to send a new ...
A data transmission is initiated by loading the transmit buffer with the data to be transmitted. The
CPU can load the transmit buffer by writing to the UDR I/O location. The buffered data in the
transmit buffer will be moved to the Shift Register when the Shift Register is ready to send a new ...
- Чт июн 25, 2015 06:29:06
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Так и
The TXC Flag can be used
to check that the Transmitter has completed all transfers, Note that the TXC Flag must be
cleared before each transmission (before UDR is written) if it is used for this purpose.
А The UDR Flag indicates if the transmit buffer (UDRn) is ready to receive new data, но ...
The TXC Flag can be used
to check that the Transmitter has completed all transfers, Note that the TXC Flag must be
cleared before each transmission (before UDR is written) if it is used for this purpose.
А The UDR Flag indicates if the transmit buffer (UDRn) is ready to receive new data, но ...
- Чт июн 25, 2015 03:45:39
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Мужики, подскажите.
Есть пир, отвечающий на команды с компа по RS485.
Уже долго бьюсь, но никак не могу понять почему у меня драйвер adm485 отключается раньше, чем заканчивается передача по UART.
Вот код такой:
case SendStat:
Rs485SendEN=1; //driver on
UCSRA |= (1<<TXC);//sbros flaga txc ...
Есть пир, отвечающий на команды с компа по RS485.
Уже долго бьюсь, но никак не могу понять почему у меня драйвер adm485 отключается раньше, чем заканчивается передача по UART.
Вот код такой:
case SendStat:
Rs485SendEN=1; //driver on
UCSRA |= (1<<TXC);//sbros flaga txc ...
- Пт апр 11, 2014 04:38:12
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
"не сбрасывается флаг" - это фигня непонятная. я вижу, что он выводит (неужели в USART?!) содержимое регистра и при этом он ждет, что в этом регистре не будет флага?!
Да в USART через ADM485.
А в чем я ошибаюсь так уж сильно
Флаг TXC должен устанавливаться толко после того как последний байт ...
Да в USART через ADM485.
А в чем я ошибаюсь так уж сильно
Флаг TXC должен устанавливаться толко после того как последний байт ...
- Пт апр 11, 2014 04:37:37
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
uint8_t tmp;
...
UCSRA |= (1<<TXC);
tmp = UCSRA;
printf("%с",tmp);
И так я делал, только переменная была temp.
После чип erase c флагами стало все ок!
Сейчас провел эксперимент очередной:
Если запустить такой код после reset (запускается после нажатии кнопки однократно):
Rs485SendEN=1;
printf ...
...
UCSRA |= (1<<TXC);
tmp = UCSRA;
printf("%с",tmp);
И так я делал, только переменная была temp.
После чип erase c флагами стало все ок!
Сейчас провел эксперимент очередной:
Если запустить такой код после reset (запускается после нажатии кнопки однократно):
Rs485SendEN=1;
printf ...
- Чт апр 10, 2014 11:19:28
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Вот теперь понятно! огромное спасибо.
Еще подскажите по флагам TXC плз
Еще подскажите по флагам TXC плз

- Чт апр 10, 2014 10:39:08
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Т.е. если я правильно понял то отдельно функцию которая будет вызываться из main неполучится?
я в main пишу
#include <stdio.h>
#include <mega8.h>
#include <delay.h>
и #include "readRx.c"
readRx.c добавляю в проект, там функция обработчик которая получает и передает в main. Но не выходит.
2) Вы ...
я в main пишу
#include <stdio.h>
#include <mega8.h>
#include <delay.h>
и #include "readRx.c"
readRx.c добавляю в проект, там функция обработчик которая получает и передает в main. Но не выходит.
2) Вы ...
- Чт апр 10, 2014 09:35:30
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Да, а как его обозвать и правильно include?
Пробовал и .h и .c и все ругается.
Пробовал и .h и .c и все ругается.
- Чт апр 10, 2014 08:37:38
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
и как вынести функцию в другой файл?
- Чт апр 10, 2014 04:26:18
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Не совсем понял, что вы хотели этим сказать.
Для сброса флага нужно в него записать 1 согласно даташиту.
Для сброса флага нужно в него записать 1 согласно даташиту.
- Ср апр 09, 2014 12:56:15
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2476972
Re: CodeVision AVR в вопросах и ответах
Коты, подскажите почему когда я пишу
UCSRA |= (1<<TXC);
printf("%с",UCSRA);
я принимаю в терминале 0x60 (0b01100000), т.е. флаг установлен хотя я в него записал 1?
Мне это надо выяснить поскольку надо по завершению передачи выключать передатчик RS485.
Вот такой код например:
case ...
UCSRA |= (1<<TXC);
printf("%с",UCSRA);
я принимаю в терминале 0x60 (0b01100000), т.е. флаг установлен хотя я в него записал 1?
Мне это надо выяснить поскольку надо по завершению передачи выключать передатчик RS485.
Вот такой код например:
case ...
- Пн фев 27, 2012 09:00:46
- Форум: Микроконтроллеры и ПЛИС
- Тема: Подделка atmega8A???
- Ответы: 16
- Просмотры: 2491
Re: Подделка atmega8A???
Все атмеловские контроллеры по умолчанию поставляются с тактированием 8МГц и включенным делителем на 8, значит, все они по умолчанию работают на 1МГц, так что зря вы злитесь
Так вот именно что "все они по умолчанию работают на 1МГц ". А делитель для PWM для какого clock- a задается? Не с clock_I ...
Так вот именно что "все они по умолчанию работают на 1МГц ". А делитель для PWM для какого clock- a задается? Не с clock_I ...
- Пт фев 24, 2012 19:04:52
- Форум: Микроконтроллеры и ПЛИС
- Тема: Подделка atmega8A???
- Ответы: 16
- Просмотры: 2491
Re: Подделка atmega8A???
Модераторов прошу удалить тему.
- Пт фев 24, 2012 19:03:44
- Форум: Микроконтроллеры и ПЛИС
- Тема: Подделка atmega8A???
- Ответы: 16
- Просмотры: 2491
Re: Подделка atmega8A???
Ну это у кого как 
Злые вы все тут какие-то
.
Нет чтоб подсказать проверить фьюзы..
Злые вы все тут какие-то
Нет чтоб подсказать проверить фьюзы..
- Пт фев 24, 2012 19:02:45
- Форум: Микроконтроллеры и ПЛИС
- Тема: Подделка atmega8A???
- Ответы: 16
- Просмотры: 2491
Re: Подделка atmega8A???
Ну это у кого как 