Форум РадиоКот • Просмотр темы - Вопросы начинающих PIC ASM
Сообщения без ответов | Активные темы
Страница 34 из 37
[ Сообщений: 732 ]
... , , , , , ,
Автор
Сообщение
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Пт июл 12, 2024 17:46:22
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Геркон не рассчитан на 5 мс коммутации. Для КЭМ1, например, верхняя частота коммутации - 50 Гц. То есть 20 мс. При дребезге 2 мс.
Добавлено after 1 minute 53 seconds: контакты прерывателя механические
Но там дребезг особого значения не имеет. Желаете датчик для электронной системы - делаете электронный датчик. Как в любом ДВС.
Вернуться наверх
Реклама
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Пт июл 12, 2024 22:44:35
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
Дайте совет, пож-ста, почему оно не компилится. Я, конечно, ещё не до конца причесал, но уже вроде должно. И объявлены там на что он ругается, а почему "Parser error", вообще непонятно.
Вложение:
pic-uoz.tar.7z [15.44 KiB]
Скачиваний: 155
Вернуться наверх
Реклама
koms48
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 00:59:18
Карма: 1
Рейтинг сообщений: 12
Зарегистрирован: Пт окт 19, 2012 05:54:55Сообщений: 132
Рейтинг сообщения: 0
Неправильно 1T.H equ 0x75 ; ======КОНСТАНТЫ========== 1T.L equ 0x30 ; период 1/2 оборота в тиках TMR OSC/4 LimitRPMin ниже УОЗ=0 2T.H equ 0x3A 2T.L equ 0x98 ; период в точке 2000 об/мин И далее Не начинай константы с цифры Неправильно Start: goto Init Правильно Start goto Init Пока хватит.
Вернуться наверх
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 06:00:33
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
Спасибо. А почему CBLOCK не воспринимается напрочь? Вроде ничего не нарушено.
Вернуться наверх
Реклама
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 06:43:45
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Неправильно Start: goto Init Правильно Start goto Init
С чего бы это?
Пример:
почему CBLOCK
Лучше перейти на режим relative и определять переменные через udata/udata_shr:
Код:
bank0 udata 0x20 currPeltier res 2 setTemp res 2 tempRad res 2 tempPeltier res 2 tempBox res 2 startTimer res 1 currPeltierAVG res 2 bank1 udata 0x120 currSetPID res 2 currZ1PID res 3 currZ2PID res 3 currAccPID res 5 currOutPID res 5 udata_shr flags res 1 ;---------- data_ready equ 0 two_sec_req equ 1 first_time equ 2 alarm_req equ 3 ;---------- muxADC res 1 muxDataADC res 1 tempParameter res 1 statFirstTime res 1 countAlarm res 2 tempInt res 4 ;== ; functions PID currPID equ 0 tempPID equ 1 peltPID equ 2 fanPID equ 3 ;==
Вернуться наверх
Реклама
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 08:00:01
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
А чем лучше? В описании сказано, что все UDATA* для объектных файлов. Это мне подойдёт, ессли мне нужен только .hex и исходник всего один? CBLOCK не разбирался из-за отсутствия отступов
Последний раз редактировалось yor Сб июл 13, 2024 08:24:22, всего редактировалось 1 раз.
Вернуться наверх
Реклама
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 08:23:55
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
А чем лучше?
Читаемостью, видимостью переменных в отладке, наконец, просто удобнее иметь одну переменную вместо побайтного разложения на две, три или больше.
В описании сказано, что все UDATA* для объектных файлов.
Бред сивой кобылы. Вы ничего не поняли. Это просто перемещаемый режим.
Это мне подойдёт, ессли мне нужен только .hex и исходник всего один?
А кому нужен не только hex при единственном небольшом проекте? Это подойдет всем.
Вернуться наверх
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 08:25:51
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
Это русские микрочиповцы ничего не поняли, они так пишут в русском переводе.
Вернуться наверх
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 08:32:36
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Это русские микрочиповцы
Дело не в том, кто и чего пишет. Ничего не поняли именно вы.
И таки да, адрес в перемещаемом режиме определяется линкером и потому можно из исходника скомпилить перемещаемый обжект.
НУ И ЧТО? Можно - не значит нужно. Это просто возможность. Дополнительная фича.
Вернуться наверх
Реклама
BOB51
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 09:55:45
Друг Кота
Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15481Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Мы говорим относительно мпасма - у топиктартера нечто другое. Могут быть разночтения.
Вернуться наверх
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 10:00:35
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Мы говорим относительно мпасма
У него и есть mpasm. С чего бы быть другому?
Вернуться наверх
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 10:04:52
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
Ну вообще-то gpasm, совместимый.
Код:
00084 Error[149] : Directive only allowed when generating an object file: "UDATA_SHR" 00085 UDATA_SHR 0000 3FFF 00086 w_sav res 1 0002 3FFF 00087 stat_sav res 1 0004 3FFF 00088 pclath_sav res 1 0006 3FFF 00089 AA.L res 1
Что здесь не так? Переменные однобайтные
Вернуться наверх
BOB51
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 10:08:05
Друг Кота
Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15481Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Тогда об отличиях написания для абсолютного и относительного режимов должен знать...
А вот как там в gpasm дела обстоят...
Этого я не ведаю... Может вообще другие директивы должны использоваться...
Вернуться наверх
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 10:13:00
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Ну вообще-то gpasm
Тогда нюансы синтаксиса - только сам. Это плата за маргинальность.
Переменные однобайтные
Даладна...
А что это там за .L и .H?
Вернуться наверх
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 10:57:10
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
Чем это переписывается, команд до этого нет?
Код:
Error[118] : Overwriting previous address contents: 0x0000 0000 282C 00093 Start: goto Init
Спойлер Код:
gpasm-1.5.2 #1325 (Mar 29 2024) pic-uoz-016.a 13.07.2024 14:53:31 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 list p=16f627a 00002 #include p16f627a.inc 00001 LIST 00002 00003 ;==================== 00004 ; Build date : Oct 21 2015 00005 ; MPASM PIC16F627A processor include 00006 ; 00007 ; (c) Copyright 1999-2015 Microchip Technology, All rights reserved 00008 ;==================== 00009 00386 LIST 00003 00004 #define Bank0 bcf STATUS,RP0 0000 1303 00005 bcf STATUS,RP1 00006 #define Bank1 bsf STATUS,RP0 0001 1303 00007 bcf STATUS,RP1 00008 #define Bank2 bcf STATUS,RP0 0002 1703 00009 bsf STATUS,RP1 00010 #define Bank3 bsf STATUS,RP0 0003 1703 00011 bsf STATUS,RP1 00012 2007 3F10 00013 __CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKO UT & _LVP_OFF 00014 00015 ;; адреса 00016 CBLOCK 0x20 00000058 00017 ; AL AM BL BM CL CM DL DM 00000020 00018 hiAA.L,hiAA.H,loDPZ.L,loDPZ.H,loAA.L,loAA.H,hiDPZ.L,hiDPZ.H,xDPZ.L,xDPZ.H 0000002A 00019 AB.L,AB.M,AB.H,AB.U,CD.L,CD.M,CD.H,CD.U,CD.UL 00000033 00020 RES.L,RES.M,RES.H,RES.U,REG.AL,REG.AM,REG.AH ; REG.AH - лишний? 0000003A 00021 Q.REG.L,Q.REG.M,Q.REG.H,REZ.L,REZ.M,REZ.H,REZ.U,REZ.UL 0000003A 00022 ; loT.H:loT.L период в точке графика, соотв меньшим оборотам hi-l o относительно оборотов, на самом деле период больше, чем hiT 0000003A 00023 ; hiT.H:hiT.L период в точке графика, соотв большим оборотам hi-l o относительно оборотов, на самом деле период меньше, чем loT 00000042 00024 loT.H,loT.L,hiT.H,hiT.L 00000046 00025 cnt_loop ; регистр проходов антидребезга 00000047 00026 T.H,T.L ; Время полуоборота в тиках TMR OSC/4 00000049 00027 ton.H,ton.L ; время накопления в тиках TMR OSC/4 0000004B 00028 toff.H,toff.L ; время ожидания, выдержка, в тиках TMR OSC/4 0000004D 00029 Dact ; RA2-3 D1 || D2 актив лог0, активный канал 0000004E 00030 Stsflg ; флаги состояния: 2:_AA.0, 1:AA.0, 0:ICflg 0000004F 00031 Dlvl ; моментальный реальный уровень датчиков, д. .я обнаружения инверсии 00000050 00032 pTMRoff,TMRoff,pTMRon,TMRon,_pTMRoff,_TMRoff,_pTMRon,_TMRon ; время вкл бобин вычи. .ленная для загруза в TMRA, _подчерк актив 00000058 00033 Rtmp2,Rtmp1 ; вспом регистры 56 штук 00034 ENDC 00035 ;; адреса 00000070 00036 w_sav equ 0x70 .gpasm-1.5.2 #1325 (Mar 29 2024) pic-uoz-016.a 13.07.2024 14:53:31 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00000071 00037 stat_sav equ 0x71 00000072 00038 pclath_sav equ 0x72 00000073 00039 AA.L equ 0x73 ; AA.H:AA.L вычисляемый УОЗ в тиках TMR OSC/4, отступ до зад фронта RearFront 00000074 00040 AA.H equ 0x74 00041 ;; wghtMSB 00042 00000000 00043 ICflg equ 0 ; флаг вкл/выкл бобин Dflg 0бит, сигнализирует . . вкл состоянии бобин 00000002 00044 _AA.0 equ 0x2 ; флаг состояния AA=0 в Stsflg в предыдущем перио. .е 00000001 00045 AA.0 equ 0x1 ; флаг состояния AA=0 в Stsflg в текущем периоде 00000007 00046 RBPU EQU 0x7 ; Бит подтяжек глобально 00000005 00047 IC1 equ 0x5 ; бобина 1Ц RB5 00000006 00048 IC2 equ 0x6 ; бобина 2Ц RB6 00000000 00049 TAHO equ 0 ; тахометр RB0 00000001 00050 TMRA EQU 0x1 ; TMR0 отсчёт toff ton AA (УОЗ) 0000000E 00051 TMRT EQU 0xE ; TMR1 измерение периода 0000000E 00052 TMRT.L EQU 0xE 0000000F 00053 TMRT.H EQU 0xF 00000002 00054 D1 equ 0x2 ; RA2 sense in, active LOW ↓↑ 00000003 00055 D2 equ 0x3 ; RA3 sense in, active LOW ↓↑ 00000075 00056 m1T.H equ 0x75 ; ======КОНСТАНТЫ================== ========== 00000030 00057 m1T.L equ 0x30 ; период 1/2 оборота в тиках TMR OSC/4 LimitRPMin ниже У ОЗ=0 0000003A 00058 m2T.H equ 0x3A 00000098 00059 m2T.L equ 0x98 ; период в точке 2000 об/мин 00000027 00060 m3T.H equ 0x27 00000010 00061 m3T.L equ 0x10 ; КОНТРОЛЬНЫЕ ПЕРЕЛОМНЫЕ ТОЧКИ крив. .й УОЗ 0000001D 00062 m4T.H equ 0x1D ; НЕ ПОДЛЕЖАТ ИЗМЕНЕНИЮ НЕ П. .ДЛЕЖАТ ИЗМЕНЕНИЮ 0000004C 00063 m4T.L equ 0x4C 00000017 00064 m5T.H equ 0x17 ; период в точке 5000 об/мин 00000070 00065 m5T.L equ 0x70 00000013 00066 m6T.H equ 0x13 00000088 00067 m6T.L equ 0x88 00000012 00068 m7T.H equ 0x12 ; LimitRPMax огр макс обороты, выше УОЗ=0, в тиках TM R OSC/4 00000099 00069 m7T.L equ 0x99 ; 6300 RPM 00000000 00070 m1AA.H equ 0 ; ==========КОНСТАНТЫ============== ========== 00000000 00071 m1AA.L equ 0 ; 0° УОЗ в точке 1000 об/мин 00000004 00072 m2AA.H equ 0x4 000000E2 00073 m2AA.L equ 0xE2 ; 15° УОЗ в точке 2000 об/мин 00000004 00074 m3AA.H equ 0x4 00000057 00075 m3AA.L equ 0x57 ; 20° УОЗ в точке 3000 об/мин 00000003 00076 m4AA.H equ 0x3 000000BE 00077 m4AA.L equ 0xBE ; 23° УОЗ в точке 4000 об/мин ПОДЛЕЖАТ ИЗМ. .НЕНИЮ, УОЗ В КОНТРОЛЬНЫХ ТОЧКАХ 00000003 00078 m5AA.H equ 0x3 00000041 00079 m5AA.L equ 0x41 ; 25° УОЗ в точке 5000 об/мин ПЕРЕЛОМА КРИ. .gpasm-1.5.2 #1325 (Mar 29 2024) pic-uoz-016.a 13.07.2024 14:53:31 PAGE 3 LOC OBJECT CODE LINE SOURCE TEXT VALUE .ОЙ УОЗ 00000002 00080 m6AA.H equ 0x2 000000D2 00081 m6AA.L equ 0xD2 ; 26° УОЗ в точке 6000 об/мин 00000002 00082 m7AA.H equ 0x2 000000AF 00083 m7AA.L equ 0xAF ; 26° УОЗ в точке 6300 об/мин 00000005 00084 loop_drbzg equ 0x5 ; число проходов антидребезга 000000FF 00085 fTMRT.L equ 0xff ; для первого полуоборота TMRT=FFFF, эмуляция пе. .иода ≈65мс 000000FF 00086 fTMRT.H equ 0xff ; f - значит FIRST! stage 00000007 00087 fpTMRoff equ 0x7 ; toff=T-ton=C000 0000003F 00088 fTMRoff equ 0x3F ; для первого полуоборота 00000005 00089 fpTMRon equ 0x5 ; ton=T/4=3FFF 00000000 00090 fTMRon equ 0 ; для первого полуоборота ГТО 00091 0000 00092 org 0 Error[118] : Overwriting previous address contents: 0x0000 0000 282C 00093 Start: goto Init 00094 0004 00095 org 4 0004 00F0 00096 movwf w_sav ; save context 0005 0E03 00097 swapf STATUS,w 0006 00F1 00098 movwf stat_sav 0007 080A 00099 movf PCLATH,w ; only required if using more than first page 0008 00F2 00100 movwf pclath_sav 0009 018A 00101 clrf PCLATH
Вернуться наверх
BOB51
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 11:31:39
Друг Кота
Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15481Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Возможно как и у мпасма в gpasm помимо прочего есть различия в указании адреса по . org для относительного и абсолютного режимов. Но то читать юзера гвиду на gpasm надо...
Запуск с командной строки особенно требует знаний документации компилятора...
У меня такое только для MCS51 (привык уже за годы работ), дык и то нашёл способ вывернуться с многофайловиками.
Но это ВРЕМЯ сколько прошло...
Вернуться наверх
yor
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 11:42:32
Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27Сообщений: 1675
Рейтинг сообщения: 0
Нету для него никакой гуиды, то же самое что mpasm.
Вот такое успешно компилится. До org то же самое, только без CBLOCK
Код:
org 0 Init: Bank1 ; Переход в 1 банк movlw b'111111' movwf TRISIO ; 0x3F ; Все ноги в z как входы bsf OPTION_REG,GPPU ; Выключение подтяжек глобально clrf WPU ; Выключение подтяжек clrf IOC ; Запрещение прерываний на цифр. входах movlw b'1011000' ; Выбор входа/ножки/pin АЦП movwf ANSEL ; 0x58 ; Делитель тактов 16Tosc и выбор AN3 clrf PIE1 ; запрет прерываний от АЦП и проч Bank0 ; Переход в 0 банк clrf INTCON ; Запрет прерываний (глобальных) и от периферии movlw b'111' movwf CMCON ; 0x7 ; Выкл компаратора clrf GPIO ; b000000 ; Все выходы в 0
И какое различие?
Вернуться наверх
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 11:47:39
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
До org то же самое, только без CBLOCK
Так это и есть разница, по видимому...
И зачем вы тут публикуете листинги дизасма? Публиковать нужно только исходник.
Еще раз предлагаю перейти на перемещаемый режим. Чтобы не грызть кактус.
Вернуться наверх
BOB51
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 11:56:35
Друг Кота
Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15481Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Различия в стиле указания адреса по директиве org ...
Для мпасма даже специальные шаблон-заготовки для написания проектов относительного и абсолютного режимов прилагаются. Причём "смесь" (одновременно применение абсолютного и относительного режимов в одном проекте) компилятор дико не любит...
Относительно документации - при использовании официального дистрибутива она обязательно в комплекте идёт.
Как минимум руководство по ключам командной строки...
Вернуться наверх
КРАМ
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Сб июл 13, 2024 12:07:10
Друг Кота
Карма: 139
Рейтинг сообщений: 2973
Зарегистрирован: Чт янв 10, 2008 22:01:02Сообщений: 24850Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Причём "смесь" (одновременно применение абсолютного и относительного режимов в одном проекте) компилятор дико не любит...
В чем заключается эта "нелюбовь"? Естественно, что синтаксис перемещаемого режима в абсолютном работать не будет. А вот наоборот - запросто.
Вернуться наверх
Страница 34 из 37
[ Сообщений: 732 ]
... , , , , , ,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения