Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 24.05.2019, 02:11   #1
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Pic16f1847 вопрос по особенности работы с L9637 k-line

Код программы в основном цикле шлю данные по UART до микрухи L9637 :
Код:
UART_Write(0x80); 
UART_Write(0x10); 
UART_Write(0xF0); 
UART_Write(0x05); 
UART_Write(0xA8);
UART_Write(0x00);
UART_Write(0x00);
UART_Write(0x00);
UART_Write(0x1C);
UART_Write(0x49); //crc
otpravil=1;
Delay_ms(50);

Обработка в прерываниях:
Код:
  if(RCIF_bit){
                            LATA2_bit=1;//светодиод
                            LATA2_bit=0;//светодиод
                            }

                          if(RCIF_bit&&TRMT_bit&&otpravil)  //åñëè ïðèøåë ôëàã ïðèåìà ïî óàðòó è áóôåð íà îòïðàâêó ïóñò
                            {



                             if(FERR_bit)  //page 297 farming error bit åñëè åñòü îøèáêà ïðèåìà äàííûõ  òî ñáðîñèì áóôåð ïðèåìà íèæå
                              {
                                tmp = RCREG; //â ïåðåìåííóþ tmp ìû çàïèñàëè çíà÷åíèå ðåãèñòðà áóôåðà ïðèåìà RCREG à êîãäà åãî ÷èòàåì îí ñáðàñûâàåòñÿ.
                                return;
                              }
                               else if (OERR_bit) //page 297  overrun buffer
                              {
                                CREN_bit = 0; //Clear OERR bit     disable reciever
                                CREN_bit = 1; //Clear OERR bit     enable reciever
                                return;
                              }
                              // datas = RCREG;
                           //  datas = UART_Read();//ïðèíèìàåì ïî óàðòó


                                buffers[i]=UART_Read(); //ïðè ïåðâîì çàõîäå çàïèñûâàåì ñþäà äàííûå ïåðâîãî áàéòà â ïåðåìåííóþ   buffer[0], ïðè âòîðîì ïðîõîäå ïî öèêëó ñþäà ïèøåì ñëåäóþùèé áàéò â  buffer[1]
                               // datas = UART_Read();
                                i++;
                              //  buffers[i]=RCREG;
                                

                                if (i>63) {i=0;otpravil=0;}
                            }
Желтая стрелка это я отправил данные по UART
Синяя стрелка это микруха L9637 k-line так сделана что она дублирует все что я отправляю сразу на мой RX вход UART на МК.
Красная стрелка это пришел ответ от устройства по K линии
А вот зеленая стрелка это отработка прерывания RCIF зажигание светодиода.
Нажмите на изображение для увеличения
Название: 2019-05-24_01-55-53.jpg
Просмотров: 19
Размер:	71.5 Кб
ID:	11402
Я никак не могу избавиться от данных и прерываниях под синей стрелкой! То что я отправляю я тут же мгновенно и принимаю. Как мне их проигнорировать? я уже и так и сяк пробывал и флаг ставил и что только не делал.
Zombie47 вне форума   Ответить с цитированием
Старый 24.05.2019, 15:34   #2
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Наверно не правильно сформулировал название темы. Проще говоря меня интересует как в коде запретить прием по UART на время отправки.
Zombie47 вне форума   Ответить с цитированием
Старый 24.05.2019, 18:49   #3
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,893
Вес репутации: 5611/171
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
Проще говоря меня интересует как в коде запретить прием по UART на время отправки.
а зачем это делать? возможность принимать отправляемые данные позволит диагностировать исправность передатчика. Надо только научиться принимать все подряд, и просто игнорировать пакет, который вы отправляете.
Greg вне форума   Ответить с цитированием
Старый 24.05.2019, 22:14   #4
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Greg Посмотреть сообщение
а зачем это делать? возможность принимать отправляемые данные позволит диагностировать исправность передатчика. Надо только научиться принимать все подряд, и просто игнорировать пакет, который вы отправляете.
Да там чет странное, посмотрите картинку которую я прикрепил.при отправке 10 байт по уарту, флаг приема срабатывает около 40 раз.
а при получении по уарту 7 байт, флаг работает как надо 7 раз.
соответственно я не могу принять правильно байты которые отправляю
Zombie47 вне форума   Ответить с цитированием
Старый 24.05.2019, 22:58   #5
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,893
Вес репутации: 5611/171
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
Да там чет странное, посмотрите картинку которую я прикрепил.при отправке 10 байт по уарту, флаг приема срабатывает около 40 раз.
а при получении по уарту 7 байт, флаг работает как надо 7 раз.
соответственно я не могу принять правильно байты которые отправляю
не надо никаких условий в приемнике - надо тупо писать все что приходит в кольцевой буфер и потом смотреть, без этих "трмт" и "отправил".

Да и начать можно (нужно) без этой микросхемы - просто посылать самому себе и смотреть что принимается. Если это не отработать - дальше идти смысла нет.
потом, кстати, придет понимание, что и буфер не нужен, можно все разобрать на лету.
Greg вне форума   Ответить с цитированием
Старый 25.05.2019, 01:10   #6
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Greg Посмотреть сообщение
не надо никаких условий в приемнике - надо тупо писать все что приходит в кольцевой буфер и потом смотреть, без этих "трмт" и "отправил".

Да и начать можно (нужно) без этой микросхемы - просто посылать самому себе и смотреть что принимается. Если это не отработать - дальше идти смысла нет.
потом, кстати, придет понимание, что и буфер не нужен, можно все разобрать на лету.
изза того что прерывания срабатывают 40 раз при посылки мной 10 байт, принимает он эти отосланные байты рывками и мусором как захочется, у меня нет стабильной картины того что я бы принимал, при том что я отправляю одно и тоже. в этом проблема
Zombie47 вне форума   Ответить с цитированием
Старый 25.05.2019, 01:33   #7
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Greg Посмотреть сообщение
не надо никаких условий в приемнике - надо тупо писать все что приходит в кольцевой буфер и потом смотреть, без этих "трмт" и "отправил".

Да и начать можно (нужно) без этой микросхемы - просто посылать самому себе и смотреть что принимается. Если это не отработать - дальше идти смысла нет.
потом, кстати, придет понимание, что и буфер не нужен, можно все разобрать на лету.
вообщем сейчас разбирался разбирался, и вижу как только я отправляю 1 байт на приеме сразу есть эти же данные и поднимается флаг RCIF и все флаг не сбрасывается. и у меня постоянно заходит в обработку этого флага.
Zombie47 вне форума   Ответить с цитированием
Старый 25.05.2019, 06:08   #8
VitaKa
Member
 
Регистрация: 17.09.2011
Сообщений: 31
Вес репутации: 100/32
VitaKa will become famous soon enoughVitaKa will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Может попробовать выключить передатчик TXEN=0 после передачи.
VitaKa вне форума   Ответить с цитированием
Старый 25.05.2019, 07:01   #9
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,893
Вес репутации: 5611/171
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
вообщем сейчас разбирался разбирался, и вижу как только я отправляю 1 байт на приеме сразу есть эти же данные и поднимается флаг RCIF и все флаг не сбрасывается. и у меня постоянно заходит в обработку этого флага.
ну вот, дошло...

говорили же - читай ВСЁ в буфер, и будет счастье.
потому что этот флаг сбрасывается как раз чтением из приемника.

И да, видно, что запаса по времени не так и много (иначе там бы был лес иголок).
Greg вне форума   Ответить с цитированием
Старый 25.05.2019, 09:08   #10
VitaKa
Member
 
Регистрация: 17.09.2011
Сообщений: 31
Вес репутации: 100/32
VitaKa will become famous soon enoughVitaKa will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Послал данные,контролируешь конец передачи,TXEN=0,SREN=1 и ждёшь приема
VitaKa вне форума   Ответить с цитированием
Старый 25.05.2019, 09:25   #11
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 46
Сообщений: 1,691
Вес репутации: 2423/83
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
и поднимается флаг RCIF и все флаг не сбрасывается. и у меня постоянно заходит в обработку этого флага.

Так в обработчике его и надо сбрасывать, сам по себе он никуда не денется.
DimaS вне форума   Ответить с цитированием
Старый 25.05.2019, 09:41   #12
VitaKa
Member
 
Регистрация: 17.09.2011
Сообщений: 31
Вес репутации: 100/32
VitaKa will become famous soon enoughVitaKa will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

После входа в прерывание по приему сразу считывать RCREG,а потом уже проверять на ошибки.Иначе если есть ошибка,RCIF не сбросится.
VitaKa вне форума   Ответить с цитированием
Старый 30.05.2019, 02:49   #13
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Вообщем мучался мучался, в основном проблема изза того что я не знаю как работает встроенная в среду функция:
Код:
UART_Write(0x00); //adress
ну да ладно, решил свою проблему так:

Код:
if (TRMT_bit==1) {CREN_bit=1;} //если TSR буфер пуст то разрешаем прием по UART
else if (TRMT_bit==0) {CREN_bit=0;} //если не пуст значит мы что то отправляем и значит запрещаем прием по UART
Эту проверку вписал в прерываниях по TMR0.
Не знаю насколько хорошо так делать или не хорошо. Но пока так.
Zombie47 вне форума   Ответить с цитированием
Старый 03.06.2019, 09:29   #14
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 47
Сообщений: 3,760
Вес репутации: 6211/145
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
встроенная в среду функция:
Озвучьте IDE ...
dosikus вне форума   Ответить с цитированием
Старый 03.06.2019, 11:59   #15
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от dosikus Посмотреть сообщение
Озвучьте IDE ...
MicroC
Zombie47 вне форума   Ответить с цитированием
Старый 03.06.2019, 12:56   #16
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 47
Сообщений: 3,760
Вес репутации: 6211/145
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

И все же mikroC.
Это наихудший выбор , хуже только аурдунья...
dosikus вне форума   Ответить с цитированием
Старый 03.06.2019, 12:58   #17
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от dosikus Посмотреть сообщение
И все же mikroC.
Это наихудший выбор , хуже только аурдунья...
Понял буду иметь ввиду. до этого Mplab IDE была, она была еще хуже, жестко тупила и тд
Zombie47 вне форума   Ответить с цитированием
Старый 03.06.2019, 13:11   #18
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 47
Сообщений: 3,760
Вес репутации: 6211/145
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Здесь вся беда именно в закрытых либах , да и язык не с а внешне похожий на с. МикроЕ сделали подобие аурдуньи , один фреймвок на псевдо с , барсик, паскаль.
Проще и действенней XC8.
Хотя по мне, намного лучше совсем другое...
dosikus вне форума   Ответить с цитированием
Старый 03.06.2019, 13:42   #19
HJV
Senior Member
 
Регистрация: 25.02.2007
Адрес: Чита
Возраст: 39
Сообщений: 377
Вес репутации: 811/58
HJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to behold
Отправить сообщение для HJV с помощью ICQ
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от dosikus Посмотреть сообщение
Здесь вся беда именно в закрытых либах
Ими же можно и не пользоваться. Я сначала из любопытства МикроС попробовал вместо НТ, потом чет сам не заметил как полностью переехал на них Среда понравилась, терминал и калькулятор.
Цитата:
Сообщение от dosikus Посмотреть сообщение
Проще и действенней XC8.
Постоянно следил за километрами постов про "не едущие лыжи" ХС8 и МплабХ, решил пока обождать.
Цитата:
Сообщение от dosikus Посмотреть сообщение
Хотя по мне, намного лучше совсем другое...
Посоветуйте, молчание не всегда золото
HJV вне форума   Ответить с цитированием
Старый 03.06.2019, 14:00   #20
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 47
Сообщений: 3,760
Вес репутации: 6211/145
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от HJV Посмотреть сообщение
Посоветуйте, молчание не всегда золото
ARM и SES+Ozone...
dosikus вне форума   Ответить с цитированием
Старый 03.06.2019, 14:05   #21
HJV
Senior Member
 
Регистрация: 25.02.2007
Адрес: Чита
Возраст: 39
Сообщений: 377
Вес репутации: 811/58
HJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to beholdHJV is a splendid one to behold
Отправить сообщение для HJV с помощью ICQ
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от dosikus Посмотреть сообщение
ARM и SES+Ozone...
Это то понятно, а на чем простые поделки на Пиках программировать, чтоб без откровенных граблей? Остается старый добрый НТ (для старых Пиков), Микроси с некоторыми оговорками (встр. библиотеки) и ХС8.
А АРМ да, мне понра
HJV вне форума   Ответить с цитированием
Старый 03.06.2019, 17:56   #22
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Pic16f1847 вопрос по особенности работы с L9637 k-line

Цитата:
Сообщение от dosikus Посмотреть сообщение
Здесь вся беда именно в закрытых либах , да и язык не с а внешне похожий на с. МикроЕ сделали подобие аурдуньи , один фреймвок на псевдо с , барсик, паскаль.
Проще и действенней XC8.
Хотя по мне, намного лучше совсем другое...
Да я про это и написал ) что нет исходного кода библиотек.
Zombie47 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по GSM-модемам и _организации_ работы с ними на PIC Максим2008 Продукция MICROCHIP 17 21.11.2008 04:02
50-ти канальный GPS-модуль по технологии u-box 5 (LEA-5H) кто пробовал? (+ вопрос по GPS-антенне) Picozoid Общетехнические вопросы 13 26.05.2008 00:56
Вопрос по USB и флешкам Zloj_ya Продукция MICROCHIP 4 14.03.2008 18:49
вопрос по моделированию работы pic18f4550 asam Продукция MICROCHIP 2 27.06.2007 15:39
Вопрос новичка по Си ramonchik Продукция MICROCHIP 3 05.03.2007 16:28


Часовой пояс GMT +3, время: 14:49.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot