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

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

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

Ответ
 
Опции темы Опции просмотра
Старый 23.07.2017, 18:28   #1
NifelHELL
Junior Member
 
Регистрация: 08.04.2010
Сообщений: 23
Вес репутации: 100/29
NifelHELL will become famous soon enoughNifelHELL will become famous soon enough
По умолчанию Объявление текстовых переменных PIC16 ASSEMBLER

Использую MPASM v5.37
Как объявить текстовую константу располагающуюся в коде программы(не в ОЗУ) и как получить адрес на эту переменную

схематический пример
Код:
#include <p16F887.inc>
__CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
	__CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

		iDATA	
	 CREG db "text message\n\r"

ORG 0x00
	GOTO 	START
ORG 0x04
	GOTO 	ISR

ISR:

RETFIE

START
	CALL INIT_UART
MAIN
	MOVLW CREG
	CALL SEND_STRING
END

SEND_STRING
	MOVWF	FSR
	T_SEND:
		BTFSS	PIR1,TXIF
			GOTO	T_SEND
	MOVF	INDF,W
		MOVWF	TXREG
	INCF	FSR,F
	
	XORLW	0x0A
		BTFSS	STATUS,Z
	GOTO T_SEND
RETURN
В таком виде код компилируется и запускается, и даже выкидывает в порт данные, НО это какой-то мусор.
Программа работает если
-если переменная будет расположена в ОЗУ(для теста располагал её в первом банке, с адреса 0хА0), тогда всё работает

перечитал пару раз
http://www.kaligraf.narod.ru/stati/a...formatting.pdf
http://kazus.ru/nuke/pic/parts/mpasm.pdf
Либо я не внимателен, либо там и вправду ни чего нету.

Мне нужно сохранить многовато текстовых строк. Их объём превышает размер ОЗУ, но меньше 470 байт.
У процессора 4096 байт памяти, программа пока занимает 242 байта, которую по хорошему надо оптимизировать и займёт она тогда ещё меньше.
NifelHELL вне форума   Ответить с цитированием
Старый 23.07.2017, 19:10   #2
r_k_p
Junior Member
 
Регистрация: 22.01.2016
Сообщений: 17
Вес репутации: 133/8
r_k_p will become famous soon enoughr_k_p will become famous soon enough
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

FSR - Indirect Data Memory Address Pointer. Это означает, что Вы, обращаясь к регистру INDF имеете доступ к ячейкам в памяти данных. Для доступа к ячейкам в памяти инструкций используется вызов подпрограммы, откуда производится возврат инструкцией RETLW - выход из подпрограммы с литералом в аккумуляторе W. Посмотрите: http://www.microchip.ru/?cid=185&mid=3
r_k_p вне форума   Ответить с цитированием
Старый 23.07.2017, 19:39   #3
NifelHELL
Junior Member
 
Регистрация: 08.04.2010
Сообщений: 23
Вес репутации: 100/29
NifelHELL will become famous soon enoughNifelHELL will become famous soon enough
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Да видел такой способ, но честно признаюсь я не знаю/не понимаю как этим способом сохранить и передавать строки(длинна строк разная, но все завершаются на 0Dh 0Ah), это я использую как проверку окончания строки.

Набросайте код где я могу хранить несколько строк(разной длинны) и выводить их в порт.

Спасибо r_k_p, теперь я понимаю что за мусор брался
NifelHELL вне форума   Ответить с цитированием
Старый 24.07.2017, 12:43   #4
r_k_p
Junior Member
 
Регистрация: 22.01.2016
Сообщений: 17
Вес репутации: 133/8
r_k_p will become famous soon enoughr_k_p will become famous soon enough
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Давно не работал с asm. Попробуйте, в симуляторе работает.
Код:
#include <p16F887.inc>
    __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
    __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V


    udata
byteAddr    res    1
tmpByte    res    1

    ORG 0x00
    GOTO     START
    ORG 0x04
    GOTO     ISR
ISR:
    RETFIE
START
;    CALL INIT_UART
MAIN
    ; Вывод строки 1 
    movlw    low (STR_1 - 1)
    CALL     SEND_STRING
    ;...........................
    ; другие инструции программы
    ;...........................
    ;...........................
    ; Вывод строки 2
    movlw    low (STR_2 - 1)
    CALL     SEND_STRING

    goto    $    ; бесконечный стоп

SEND_STRING:
    MOVWF    byteAddr    ; адрес первого байта
T_LOOP:    
    movlw    high C_TBL
    movwf    PCLATH    ; Страница памяти программ таблиц
    MOVFW    byteAddr    ; примем адрес байта
    CALL    C_TBL    ; Примем байт
    movwf    tmpByte    ; сохраним
    movlw    high SEND_STRING
    movwf    PCLATH    ; Восстановим страницу памяти программ
    movfw    tmpByte    ;
    BTFSC    STATUS,Z    ; Проверка на конец строки, обычно на 0
    RETURN        ; 0 - уходим
T_WAIT:    
    BTFSS    PIR1,TXIF
    GOTO    T_WAIT
    
    MOVWF    TXREG
    INCF    byteAddr,F
    GOTO     T_LOOP
;-----------------------------
    ORG 0xf00        ; можно другое, желательно кратное 256, чтобы уместилось макс. 255 символов
    
C_TBL:    addwf    PCL
STR_1:    dt "text message1",0x0d,0x0a,0x0    ; \n\r - не получается, ставить 0x0d,0x0a!

STR_2:    dt "text message2",0x0d,0x0a,0x0    ;
; Max 256 bytes in С_TBL
END
В симуляторе закомментируйте ожидание TXIF
r_k_p вне форума   Ответить с цитированием
Старый 25.07.2017, 08:09   #5
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

массив с любого адреса и любого размера
Код:
;**********************************************************************
;                                                                     *
;    Files Required: P16F877A.INC                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes:                                                           *
;                                                                     *
;**********************************************************************


    list        p=16f877A    ; list directive to define processor
    #include    <p16f877A.inc>    ; processor specific variable definitions
    
    __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF

; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.






;***** VARIABLE DEFINITIONS
w_temp        EQU    0x7D        ; variable used for context saving 
status_temp    EQU    0x7E        ; variable used for context saving
pclath_temp    EQU    0x7F        ; variable used for context saving    

;adress_mass EQU    0x70    
;adress_mass EQU    0x71
;adress_L    EQU    0x71
;adress_H    EQU    0x72
;rezalt      EQU    0x73            

CBLOCK 70h
adress_mass :2    
;adress_mass EQU    0x71
adress_L    :1
adress_H    : 1
rezalt      :1
ENDC



;**********************************************************************
    ORG     0x0000             ; processor reset vector
        bsf PCLATH,3
        bsf PCLATH,4
    nop              ; nop required for icd
      goto    init              ; go to beginning of program


    ORG     0x0004             ; interrupt vector location

    movwf   w_temp            ; save off current W register contents
    movf    STATUS,w          ; move status register into W register
    movwf    status_temp       ; save off contents of STATUS register
    movf    PCLATH,w      ; move pclath register into w register
    movwf    pclath_temp      ; save off contents of PCLATH register

; isr code can go here or be located as a call subroutine elsewhere

    movf    pclath_temp,w      ; retrieve copy of PCLATH register
    movwf    PCLATH          ; restore pre-isr PCLATH register contents
    movf    status_temp,w     ; retrieve copy of STATUS register
    movwf    STATUS            ; restore pre-isr STATUS register contents
    swapf   w_temp,f
    swapf   w_temp,w          ; restore pre-isr W register contents
    retfie                    ; return from interrupt

;************************************************************
;* процедура нахождения нужного элемента массива
;************************************************************
    ORG     0x0080 ; для коректной работы рекомендуется
                             ; расположить процедуру
                             ; в 0-банке памяти программ
massiv: 
    movlw high tabl         
    addwf adress_H,w
    movwf    PCLATH 
    movlw low tabl
    addwf adress_L,w
     btfsc STATUS,C 
       incf PCLATH,f 
    movwf   PCL
    return 
;************************************************************
;* таблица элементов массива
;************************************************************ 
   ORG     0x17fe
tabl:       retlw 0x01
       retlw 0x02    ;0x17ff
       retlw 0x03    ;0x1800 
       retlw 0x04    ;0x1801 

;************************************************************
;* главная программа
;************************************************************ 

    ORG     0x1F00      
init:
main:

       movlw 0x00
        movwf adress_H
       movlw 0x00
        movwf adress_L
        bcf PCLATH,3   
        bcf PCLATH,4
       call massiv
        bsf PCLATH,3
        bsf PCLATH,4
       movwf rezalt

       movlw 0x00
        movwf adress_H
       movlw 0x01
        movwf adress_L
        bcf PCLATH,3
        bcf PCLATH,4
       call massiv
        bsf PCLATH,3
        bsf PCLATH,4
       movwf rezalt

       movlw 0x00
        movwf adress_H
       movlw 0x02
        movwf adress_L
        bcf PCLATH,3
        bcf PCLATH,4
       call massiv
        bsf PCLATH,3
        bsf PCLATH,4
        movwf rezalt

       movlw 0x00
        movwf adress_H
       movlw 0x03
        movwf adress_L
        bcf PCLATH,3
        bcf PCLATH,4
       call massiv
        bsf PCLATH,3
        bsf PCLATH,4
       movwf rezalt

   goto main   
    
    END                       ; directive 'end of program'
DmitrijVDN вне форума   Ответить с цитированием
Старый 29.07.2017, 22:31   #6
NifelHELL
Junior Member
 
Регистрация: 08.04.2010
Сообщений: 23
Вес репутации: 100/29
NifelHELL will become famous soon enoughNifelHELL will become famous soon enough
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

R_K_P Огромное спасибо, разобрался как это работает на вашем примере, и да оно сразу работает.

Вот тока теперь возникло ещё пара вопросов
при написании программы, компилятор учитывает что программа может выйти за пределы за страницы памяти(программы) или надо самому учитывать этот нюанс, и стараться функции раскладывать по страницам памяти?

И вопрос по директивам HIGH и LOW где бы найти нормальное описание всех доступных директив?

И, контрольный в голову, все переменные описанные в секции констант, не занимают памяти в микроконтроллере. То есть компилятор во врем компиляции просто подставляет значение константы?

P.S. извиняюсь что так долго не отвечал, пришлось разобраться как физически реализуется UART. Как выяснилось просто соединить
RxD -> TxD
TxD -> RxD
не получается, пока параллельно шине висел UART -> USB, китайский конвертер, всё работало, а без него шина загнулась. Пока, делал подтяжки нечайно 25Вывод(TxD) засадил на -5V. Вообщем ппц(пушной зверёк) ему настал.
NifelHELL вне форума   Ответить с цитированием
Старый 30.07.2017, 00:29   #7
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от NifelHELL Посмотреть сообщение
при написании программы, компилятор учитывает что программа может выйти за пределы за страницы памяти(программы) или надо самому учитывать этот нюанс, и стараться функции раскладывать по страницам памяти?

И вопрос по директивам HIGH и LOW где бы найти нормальное описание всех доступных директив?

И, контрольный в голову, все переменные описанные в секции констант, не занимают памяти в микроконтроллере. То есть компилятор во врем компиляции просто подставляет значение константы?
нет не учитывает.
в руководстве пользователя
если вы об этом
Код:
    CBLOCK   20h 
      count_reg1 :2
      const_reg2  
    ENDC
то это эквивалентно
Код:
count_reg1        EQU    0x20 ; младший байт переменной count_reg1
; count_reg1        EQU    0x21 ; старший байт переменной count_reg1
count_reg2       EQU    0x22
и эквивалентно

Код:
#define count_reg1   0x20 
#define count_reg2   0x22
и на стадии компиляции
Код:
movfw count_reg1
будет заменено на
Код:
movfw 0x20
DmitrijVDN вне форума   Ответить с цитированием
Старый 30.07.2017, 07:56   #8
NifelHELL
Junior Member
 
Регистрация: 08.04.2010
Сообщений: 23
Вес репутации: 100/29
NifelHELL will become famous soon enoughNifelHELL will become famous soon enough
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от NifelHELL Посмотреть сообщение
при написании программы, компилятор учитывает что программа может выйти за пределы за страницы памяти(программы) или надо самому учитывать этот нюанс, и стараться функции раскладывать по страницам памяти?
Нет, я имею ввиду размеры кода, у pic16f887 12битная адресация младший байт лежит в PCL, и старший в PCLATH. В документации сказано что переходы можно делать не дальше чем 255 комманд(могу соврать) потому как изменяется только состояние регистра PCL и не происходит изменения регистра PCLATH.
Отсюда и вопрос, я могу делать переходы и вызовы функций в пределах блоков памяти по 256 байт? Или компилятор сам раскладывает функции по страницам и вычисляет дальние переходы?

И нет или в MPLAB возможности просмотреть загруженность памяти, не дебаг с просмоттром регистров, а сколько байт весит сама программа, какие области памяти она займёт.
NifelHELL вне форума   Ответить с цитированием
Старый 30.07.2017, 08:42   #9
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: M.O.
Возраст: 58
Сообщений: 2,092
Вес репутации: 2636/84
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Во первых, нет и никогда не было никаких ограничений по поводу вычисляемого перехода относительно границы страниц по 256 слов.
Ограничения касались КОНКРЕТНОЙ РЕАЛИЗАЦИИ КОДА, который применял для перехода от начала таблицы команду addwf PCL, f.
Замена этой команды на movwf PCL, f с предварительным вычислением PCLAT и PCL дает возможность располагать таблицы в любом месте флеша, делать таблицы любого размера (в пределах доступного флеша) и, естественно, пересекать границы страниц по 256 слов.
Во вторых, ассемблер ничего не учитывает автоматически. Ассемблер, строго говоря, даже и не компилятор. Хотя и в Си при работе с платформами имеющими страничную сегментацию памяти опционально позволяет/требует указывать специальный квалификатор размещения переменных/констант внутри определенных сегментов (страниц, банков и т.п.) этой самой памяти.
Марк вне форума   Ответить с цитированием
Старый 30.07.2017, 09:48   #10
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от NifelHELL Посмотреть сообщение
Нет, я имею ввиду размеры кода, у pic16f887 12битная адресация младший байт лежит в PCL, и старший в PCLATH. В документации сказано что переходы можно делать не дальше чем 255 комманд(могу соврать) потому как изменяется только состояние регистра PCL и не происходит изменения регистра PCLATH.
Отсюда и вопрос, я могу делать переходы и вызовы функций в пределах блоков памяти по 256 байт? Или компилятор сам раскладывает функции по страницам и вычисляет дальние переходы?
вообще-то она 13-ти битная, вы несколько неправильно это понимаете. конечно вы можете делать переходы и вызовы функций в пределах блоков памяти по 256 байт вопрос, где вы окажитесь после перехода.
Есть два вида перехода безусловный и условный (вычисляемый) переходы.
К первому относятся команды GOTO и CALL обе действительны в приделах страницы памяти программ 2Кбайт, так как содержат только 11 бит адреса метки , если метка перехода находится в другой странице памяти программ перед выполнением команды нужно изменить номер страницы в регистре PCLACH<4:3>

Ко второму непосредственная запись в регистр PCL действующий в приделах подстраницы памяти программ размером 256 байт, так как содержит только 8 бит адреса.
; если команда условного перехода находится на двухсотом адресе подстраницы, а вы командой addwf PCL вызываете сотый элемент массива (200+100=300 =44) и не изменяете регистр PCLACH<4:0> , то соответственно переход идет не на сотый элемент массива , а на 44 адрес текущей подстраницы
DmitrijVDN вне форума   Ответить с цитированием
Старый 30.07.2017, 12:09   #11
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 53
Сообщений: 114
Вес репутации: 472/14
masterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of light
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение

Код:
    CBLOCK   20h 
      count_reg1 :2
      const_reg2  
    ENDC
то это эквивалентно
Код:
count_reg1        EQU    0x20 ; младший байт переменной count_reg1
; count_reg1        EQU    0x21 ; старший байт переменной count_reg1
count_reg2       EQU    0x22
и эквивалентно

Код:
#define count_reg1   0x20 
#define count_reg2   0x22
Здесь есть опечатка...
Нужно быть внимательней, иначе у человека возникнет непонимание.
Если определили:

Код:
    CBLOCK   20h 
      count_reg1 :2
      const_reg2  
    ENDC
то ПРАВИЛЬНО это эквивалентно
Код:
count_reg1        EQU    0x20 ; младший байт переменной count_reg1
; count_reg1        EQU    0x21 ; старший байт переменной count_reg1
const_reg2       EQU    0x22
и НА САМОМ ДЕЛЕ эквивалентно

Код:
#define count_reg1   0x20 
#define const_reg2   0x22
Так как для двухбайтной переменной "count_reg1" выделено только 2 регистра RAM,
а за ними идет уже "const_reg2", который сам по себе.
masterok999 вне форума   Ответить с цитированием
Старый 30.07.2017, 14:13   #12
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от masterok999 Посмотреть сообщение
Здесь есть опечатка...
Де???
DmitrijVDN вне форума   Ответить с цитированием
Старый 30.07.2017, 16:09   #13
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 53
Сообщений: 114
Вес репутации: 472/14
masterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of lightmasterok999 is a glorious beacon of light
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
Де???
Ну если счетчик и константа это одно и то же, то нигде.
masterok999 вне форума   Ответить с цитированием
Старый 30.07.2017, 17:18   #14
r_k_p
Junior Member
 
Регистрация: 22.01.2016
Сообщений: 17
Вес репутации: 133/8
r_k_p will become famous soon enoughr_k_p will become famous soon enough
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от NifelHELL Посмотреть сообщение
Вот тока теперь возникло ещё пара вопросов
при написании программы, компилятор учитывает что программа может выйти за пределы за страницы памяти(программы) или надо самому учитывать этот нюанс, и стараться функции раскладывать по страницам памяти?
Проверьте выход за границы страницы, например, так:
Код:
textStart:
text1:    dt "text1 message ..."
text2:    dt "text2 message ..."
text3:    dt "text3 message ..."
textN:    dt "textN message ..."
    if    high ($-1) != high textStart
    error    "Переход через страниццу"
    endif
r_k_p вне форума   Ответить с цитированием
Старый 30.07.2017, 20:47   #15
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 725
Вес репутации: 1200/47
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Объявление текстовых переменных PIC16 ASSEMBLER

Цитата:
Сообщение от masterok999 Посмотреть сообщение
Ну если счетчик и константа это одно и то же, то нигде.
вай, не придерайся да, для компилятора и то и другое константа.
DmitrijVDN вне форума   Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си, значение переменных short и int в pic16 StrDm Вопросы начинающих 19 09.08.2017 22:53
Объявление переменных С18 soksok Продукция MICROCHIP 9 17.08.2010 15:46
объявление переменных EEPROM PIC на C ANH Продукция MICROCHIP 15 28.02.2008 23:36


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


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