Страница 1 из 2

Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 25 янв 2020, 13:26
Виталий
Всем доброго дня. Подскажите пожалуйста как на один мк повесить два модуля ТМ1637 через Custom. С уроков по Flowkode (урок 75) скачал макрос, один модуль работает в протеусе, а при компиляции двух флоукоде выдает ошибки:
c:268: error: redefinition of 'symbol'
c:235: error: previous definition of 'symbol' was here
Не судите строго, если что не так, маловато опыта по написанию программ.

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 26 янв 2020, 12:46
Андрей
зайдите в custop code одного из них и в макросе defines удалите строчку MX_UINT8 symbol[20] = ....

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 26 янв 2020, 15:05
Виталий
Большое Вам спасибо, компилируется без ошибок, но работает только один, и читает с двух ADC одновременно.

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 26 янв 2020, 16:18
Виталий
andrewproffi писал(а):зайдите в custop code одного из них и в макросе defines удалите строчку MX_UINT8 symbol[20] = ....



Поставил Custom2, работает также один модуль (в котором удалил строчку), но теперь читает один ADC. :headbang:

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 28 янв 2020, 07:48
Андрей
Здравствуйте попробовал я немножко по своему сделать, деактивировал в одном из Custom строчку MX_UINT8 symbol[20] = .... в Defines сделал разные порты для двух индикаторов. Странно симуляция в протеусе себя ведёт один из индикаторов всё равно не работает, второй какое-то время работает. Затем как будто программа зависает в одном из Custom, может протеус выделывается. Andrewproffi посмотри пожалуйста может это я олень.

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 28 янв 2020, 08:19
Андрей
скорее всего необходимо изменить здесь все имена. так как они одинаковые и переназначаются на второй компонент. И соответственно по всем макросам изменить на новые
#define CLK_PIN1
#define CLK_PORT1
#define CLK_TRIS1
#define BitCLK_0
#define BitCLK_F

#define DATA_PIN
#define DATA_PORT
#define DATA_TRIS
#define DATA_0
#define DATA_F

сделать так:
#define CLK_PIN2
#define CLK_PORT2
#define CLK_TRIS2
#define BitCLK2_0
#define BitCLK2_F

#define DATA_PIN2
#define DATA_PORT2
#define DATA_TRIS2
#define DATA2_0
#define DATA2_F

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 28 янв 2020, 16:04
Андрей
andrewproffi писал(а):скорее всего необходимо изменить здесь все имена. Так как они одинаковые и переназначаются на второй компонент. И соответственно по всем макросам изменить на новые

Привет тёска пробовал, не получилось, вообще ни один из индикаторов не работает теперь. При пошаговой симуляции в протеусе выяснил следующее, прога зациклилась в подцикле макроса Custom(0)\I2Casc. Может всё таки протеус не-то-го хотя если построить программу с одним индикатором тогда всё гуд.

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 28 янв 2020, 16:17
Андрей
у второго дисплея не все изменили ) в этих скобках указать новое имя

FC_CAL_Bit_Low_DDR (CLK_PORT1, CLK_TRIS1 , CLK_PIN1)
FC_CAL_Bit_In_DDR (CLK_PORT1, CLK_TRIS1 , CLK_PIN1)


FC_CAL_Bit_Low_DDR (DATA_PORT, DATA_TRIS , DATA_PIN)
FC_CAL_Bit_In_DDR (DATA_PORT, DATA_TRIS , DATA_PIN)

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 28 янв 2020, 19:38
Андрей
andrewproffi писал(а):у второго дисплея не все изменили ) в этих скобках указать новое имя

Да не углядел наверное должно помочь, но в протеусе ни чего не изменилось. По одному они работают, ТМ1637 не отдает вит Asc вот он и циклится в макросе I2Casc. Возможно это глюк протеуса дождёмся может Виталий в железе проверит.

Re: Два модуля ТМ1637 на одном мк

СообщениеДобавлено: 28 янв 2020, 21:55
emil theodor
With the modifications proposed in this topic, it also works in Proteus.