Клеммные колодки Keen Side

Обмен МК с ПК по программному USART attiny 26

Страница 1 из 4
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
28.08.2019 23:14 #1
Короче надоели все ампервольтметры, всех видов , На ЛСД, на семисегментной индикации, термометры, таймеры, тупая логика ! Решил изучить передачу данных между МК и ПК, ну или все варианты между всеми вариантами . И решил начать с программного UART для Attiny 26, между оной и гипертерминалом . В общем есть USB-UART две штуки , одна на ftdi232 и есть какая то дешёвая версия YP-01.... Запилил прогу по алгоритму на с++ по ссылке в следующем посте . Она стабильно выдаёт какие то коды, которые не соответствуют пересылаемым с ПК.
Оценка
К конденсаторам источников питания высокой мощности предъявляются высокие требования по качеству и надежности. Пленочные – единственный тип конденсаторов, который может справиться с такой задачей. Компания Hongfa предлагает продукцию, которая подходит для применения практически во всех функциональных узлах типовых AC/DC- или DC/AC-преобразователей. Рассмотрим характеристики и применения плёночных конденсаторов Hongfa для различных решений.
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
28.08.2019 23:17 #2
Ссылка https://radiohlam.ru/pic_pr_usart_prost/
Оценка
Вслед за сериями на DIN-рейку DDRH-60/120/240 и на шасси RSDH-150/300 компания MEAN WELL выпустила новые маломощные DC/DC-преобразователи DDRH-15/30/45 со сверхшироким входным напряжением 150…1500 В, и монтажом не только на DIN-рейку, но и печатную плату или винтовым соединением. Все преобразователи семейства DDRH и RSDH работают при температурах -40…80°C и обладают высокой изоляцией 4000 В AC между входом и выходом, что обеспечивает надежную защиту. Они подходят для использования на высоте до 5000 м и сертифицированы по стандарту IEC62109-1 для фотоэлектрических систем. Преобразователи DDRH/RSDH есть в наличии и под заказ.
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
28.08.2019 23:18 #3
там правда на ассемблере .
Но вот на с++ такой код (это тестовая прога не судите строго)
Код:
/*******************************************************
прога написана в code vision AVR
фьюзы биты внутренний генератор на 4 Мгц
B6-'это вывод-9 МК который INT0
Chip type               : ATtiny26
AVR Core Clock frequency: 4,000000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 32
*******************************************************/

#include <tiny26.h>
#include <alcd.h>
#include <delay.h>
 unsigned char i,j, time,cod;

interrupt [EXT_INT0] void ext_int0_isr(void)
{
 i=1;  //флаг внешнего прерывания (старт приёма байта)
}

/*interrupt [TIM0_OVF] void timer0_ovf_isr(void)  // прерывание по таймеру пока не используем
{

}
*/
void print (void)    // вывод принятого кода и символа через тире на LCD
{    
     lcd_clear();     
       lcd_putsf("-");
        lcd_putchar((cod/100)+48);         //старший разряд   
         lcd_putchar((cod%100)/10+48);  //средний  
          lcd_putchar((cod%10)+48);        //младший 
           lcd_putsf("-");    
            lcd_putchar (cod);
             delay_ms(100);  //задержка для пропуска стопового бита

}

void main(void)
{

// Port A initialization   // тут стандартная настройка портов
// Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T 
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In 
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=P Bit5=T Bit4=T Bit3=T Bit2=P Bit1=P Bit0=P 
PORTB=(0<<PORTB7) | (1<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (1<<PORTB1) | (1<<PORTB0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 4000,000 kHz
TCCR0=(0<<CS02) | (0<<CS01) | (1<<CS00);
TCNT0=0x00;                                 // отключил его за ненадобностью после визарда


// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<TOIE0);

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: при переходе в ноль
// Interrupt on any change on pins PA3, PA6, PA7 and PB4-7: Off
// Interrupt on any change on pins PB0-3: Off
GIMSK=(1<<INT0) | (0<<PCIE1) | (0<<PCIE0);
MCUCR=(0<<ISC01) | (0<<ISC00);
GIFR=(1<<INTF0) | (0<<PCIF);



// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTA Bit 4
// RD - PORTB Bit 7
// EN - PORTA Bit 5
// D4 - PORTA Bit 0
// D5 - PORTA Bit 1
// D6 - PORTA Bit 2
// D7 - PORTA Bit 3
// Characters/line: 16
lcd_init(16);
 #asm("sei")

while (1)
  {
      
      if(i==1)  // стартовый бит от ПК был то:
      {
           GIMSK=(0<<INT0);  // запретить внешнее прерывание на время приёма
             i=0;            // сбросить флаг
              delay_us(220+55); //задержка длинна бита + 1/4
               for( j=0;j<8;j++) // 8 бит-8 раз
            {
             if  (PINB.6==0) cod|= (1 << 7); //считываем состояние приёмного порта устанавливаем 7й бит
                                             //приёмной переменной если на порте 0 то бит в единицу
              cod=cod>>1;       //сдвигаем содержимое приёмной переменной в право
               delay_us(220);   //пауза равная длинне приёмного бита (4800 бод 1000000/4800=208,33) ставим слегка больше
            }
                print ();     //вывод на ЛСД кода и символа
      
      }
              GIMSK=(1<<INT0); // разрешение на внешнее прерывание для приёма след. байта
               cod=0;          // обнуление раннее принятого значения
   }
}
Оценка
В последние годы растёт спрос на источники питания для промышленной автоматизации в связи с увеличением инфраструктурных проектов, требующих надёжного электропитания. Источники питания на DIN-рейку MEAN WELL обладают высокой эффективностью, надёжностью и безопасностью, обеспечивая стабильное выходное напряжение. Большой ассортимент в наличии позволяет выбрать подходящий ИП MW на DIN-рейку для решения любой задачи электропитания.
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
28.08.2019 23:34 #4
Оба USB-UART выдают одно и то же , в двух разных гипертерминалах . Вопрос . Почему не то , что надо ?
Оценка
Гуру
 
Регистрация: 28.06.2012
Сообщений: 4,868
Репутация: 1170
1,316 118
483 1
 
28.08.2019 23:41 #5
Так может, скорости не совпадают ???
Оценка
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
28.08.2019 23:43 #6
Цитата:
Сообщение от kovigor
Так может, скорости не совпадают ???
Дак совпадают ! И в терминалах, и в физических настройках портов 4800
Оценка
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
28.08.2019 23:55 #7
Там чувак под ассемблер запилил алгоритм, может с с++ не канает, типа тайминги какие нить не канают .
Оценка
Гуру
 
Регистрация: 28.06.2012
Сообщений: 4,868
Репутация: 1170
1,316 118
483 1
 
28.08.2019 23:55 #8
Тогда ищите, что в формате посылки не так (старт-бит, стоп-бит). И биты данных - старшими разрядами вперед или младшими ?
Оценка
Новичок
 
Аватар для aalex_641
 
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
64 24
35 8
 
29.08.2019 00:01 #9
Цитата:
Сообщение от kovigor
Тогда ищите, что в формате посылки не так (старт-бит, стоп-бит). И биты данных - старшими разрядами вперед или младшими ?
Там вроде как по его алгоритму то всё должно быть правильно , я про старты , стопы и направления ...Вот есть небольшое недопонимание под каой приём данных он имел ввиду ... у него какая то прога которая у меня не заработала на компе как надо . Может какой то свой теминал .... вот я то и спросил .
Оценка
Гуру
 
Регистрация: 28.06.2012
Сообщений: 4,868
Репутация: 1170
1,316 118
483 1
 
29.08.2019 00:03 #10
Так вот это и плохо, что вы пользуетесь неизвестным терминалом. Вообще не используйте терминал автора, используйте стандартный ГиперТерминал или TeraTerm. В конце концов, даже в CodeVision есть свой терминал ...
Оценка
Ответ
Страница 1 из 4
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Скидки, кэшбэк и бесплатная доставка от ТМ Электроникс
Часовой пояс GMT +3, время: 01:33.
Обратная связь РадиоЛоцман Вверх