3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
1 | |
Обмен данными между МК через RS-485 (MAX487)28.10.2015, 09:01. Показов 13293. Ответов 86
Метки нет (Все метки)
Доброго времени суток.
Сразу к делу: В сообщении прикреплено фото и файл исходного кода (AtmelStudio 6) и проект в Proteus 8 Prof. Проблема в следующем: из МК U2 поднимаем ножку PD3, передаем данные TXD (рис.п.1) MAX487 передает другой стороне (рис.п.2), а U3 принимает RXD (рис.п.3). Далее U3 обрабатывает данные и выдает ответ TXD (рис.п.4), MAX487 передает другой стороне (рис.п.5), но вот U2 через RXD (рис.п.6) ничего не принимает. Помогите пожалуйста разобраться.
0
|
28.10.2015, 09:01 | |
Ответы с готовыми решениями:
86
RS-485: PIC18f4620 и MAX487 Обмен данными по RS-485 в CodeVisionAVR (на базе кода Wizard Обмен данными между БП и УТ на 1С 8.2 через OLE, ADO Обмен данными между 2 клиентами через интернет Обмен данными между телефонами через интернет |
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
10.12.2015, 22:10 [ТС] | 61 |
Это ведь только схема.
Отладку провожу на железе (Proteus`у уже не доверяю....). Питание к МК идет от VCC 5V
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
15.12.2015, 08:55 [ТС] | 62 |
Такой? КИГ 0.1- 120 мкГн, 10%-20%, Катушка индуктивности Или такой? EC24-121K, 120 мкГн, 10%, Индуктивность Добавлено через 3 минуты Вообще по этой катушке информацию находил в Ликбезе по МК рисунок 2
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
15.12.2015, 12:17 | 63 |
Я ж не знаю что вы хотите. ) если вы АЦП контроллера не собираетесь ничего мерять - можете вообще "понять и простить" этот AVCC и запитать его от 5В напрямую. Если хотите убрать высокочастотные шумы, ставьте хоть что-нибудь. Я ставил фильтры, типа вот таких.
ЗЫ: обычно их полно в компьютерной технике (выпаивал со старых плат винчестеров).
2
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
15.12.2015, 20:51 [ТС] | 64 |
Последний вариант:
Вроде нигде не ошибся... пойду на макетке собирать... Убрал из схемы релюшки, так как управляющая часть будет на отдельном канале для быстроты реакции Огромное спасибо Voland`у
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
15.12.2015, 21:29 | 66 |
поддерживаю. Но схема действительно не сложная. Calligraff, а зачем вы CS выводите на ISP?
1
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
15.12.2015, 21:35 [ТС] | 67 |
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
15.12.2015, 22:11 [ТС] | 68 |
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
24.12.2015, 07:34 [ТС] | 69 |
2
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
03.03.2016, 21:22 [ТС] | 70 |
Ну вот и подошло к концу проектирование и сборка опытного образца (в кол-ве 17 штук )) ) моей метеостанции.. произвел некоторые изменения.. но о них позже. как и фото
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
||||||
06.05.2016, 11:02 [ТС] | 71 | |||||
Доброго времени суток.
Чего-то никак не получается получить в коде функции длину массива uint8_t dat[] Обращаемся к функции:
Подскажите правильный способ. Спасибо.
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
06.05.2016, 14:15 | 72 |
Обычно в функцию передается указатель на массив и длина массива. Это, по крайней мере, общепринятый принцип в Си.
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
||||||||||||||||
06.05.2016, 15:33 [ТС] | 73 | |||||||||||||||
Так - то оно так, но как передавать длину массива, если заранее не известна его длина? Т.е. ее все равно нужно вычислить. Вопрос как?
Добавлено через 11 минут А если так?
Можно ли заменить
Только не понятно сначала присвоится значение в data_pack->data, а потом увеличится data_pack->lenght на единицу или наоборот?
0
|
Модератор
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
|
||||||
06.05.2016, 15:56 | 74 | |||||
а как ты память под массив выделять будешь?
по разному, для статического массива можно использовать sizeof строка размер определяет по терминальному 0 Добавлено через 17 минут можно именно так тогда было бы
2
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
||||||
11.05.2016, 22:26 [ТС] | 75 | |||||
Снова доброго времени суток.
Подскажите как не студенческим методом слить два массива uint8_t в один путем добавления одного в другой с определенной позиции? как бы с массивом char проблем нет - strcat(des, src) и готово, но с uint8_t не покатит. пример:
который будет содержать: {0x01,0x02,0x03, 0x04,0x05,0x06,0x07,0x07,0x09,0x0A,0x0B} не используя циклы и переборы. P.S. Первые 25 тем которые выдались в поиске по форуму результат не дали
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
||||||
11.05.2016, 22:34 | 76 | |||||
в общем случае, исходя из представленных данных (и даже убрав ошибки из кода) - никак. Но можно обращаться к элементам вашего "волшебного массива", чтобы массив был одним. Примерно вот так:
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
11.05.2016, 22:35 | 77 |
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
||||||
11.05.2016, 22:58 [ТС] | 78 | |||||
или могут быть грабли?
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
11.05.2016, 23:03 | 79 |
и что не так?
0
|
3 / 3 / 1
Регистрация: 26.07.2013
Сообщений: 46
|
|
11.05.2016, 23:08 [ТС] | 80 |
в посте #78. ну попробовал таким образом - получается вроде все хорошо, но не попадутся ли грабли связанные с памятью?
0
|
11.05.2016, 23:08 | |
11.05.2016, 23:08 | |
Помогаю со студенческими работами здесь
80
Обмен данными через указатель между потоками Обмен данными через COM- соединение между разными конфигурациями Обмен данными между программой и сервисом через NamedPipe Обмен данными между процессами через именованные каналы Обмен данными между формами через нестатические члены Обмен данными между процессами в линуксе через pipe Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |