Pic16f628a, мигающие светодиоды (проблема с задержкой)

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Всем добрый вечер.
Первые дни играю с контроллером, собрал программатор, поиграл с готовыми проектами (бинарый счетчик до 15, цифровая кость).

Читал один учебничек, где приведен код для мигалки простенькой (ну синтаксис понятен), а вот не работает и все тут.
То есть как, только начальное состояние отображает и все. Никакой анимации.
Спойлер

Код: Выделить всё

LIST        P=PIC16F628A
             __CONFIG    0x3FF1
STATUS      EQU         0x0003
PORTB       EQU         0x0006
TRISB       EQU         0x0006
PORTA       EQU         0x0005
TRISA       EQU         0x0005
Reg_1       EQU         0x000C
Reg_2       EQU         0x000D
Reg_3       EQU         0x000E

          	ORG     0    
 ; подготовительные моменты
             bsf         STATUS,5    ; переход в Банк 1 
             clrf        TRISB
			 clrf        TRISA
             bcf         STATUS,5    ; переход назад в Банк 0


m1       movlw       0x0 ; запись в аккумулятор 
            movwf       PORTB       ; перенос из аккумулятора в порт
            movlw       0x0 ; запись в аккумулятор 
            movwf       PORTA       ; перенос из аккумулятора в порт
            call        Pause       ; переход на метку (с возвратом)
			
            movlw       0x20 ; запись в аккумулятор 
            movwf       PORTB       ; перенос из аккумулятора в порт
            call        Pause       ; переход на метку (с возвратом)
          
            movlw       0x30 ; запись в аккумулятор 
            movwf       PORTB       ; перенос из аккумулятора в порт
            call        Pause       ; переход на метку (с возвратом)
			
            movlw       0x38 ; запись в аккумулятор 
            movwf       PORTB       ; перенос из аккумулятора в порт
            call        Pause       ; переход на метку (с возвратом)

            movlw       0x8 ; запись в аккумулятор 
            movwf       PORTA       ; перенос из аккумулятора в порт
            call        Pause       ; переход на метку (с возвратом)


             movlw       0xC ; запись в аккумулятор 
             movwf       PORTA       ; перенос из аккумулятора в порт
             call        Pause       ; переход на метку (с возвратом)


             movlw       0xD ; запись в аккумулятор 
             movwf       PORTA       ; перенос из аккумулятора в порт
             call        Pause       ; переход на метку (с возвратом)


             call miganie

movlw       0x38 ; запись в аккумулятор 
movwf       PORTB       ; перенос из аккумулятора в порт
movlw       0xD ; запись в аккумулятор 
movwf       PORTA       ; перенос из аккумулятора в порт
call        Pause       ; переход на метку (с возвратом)

movlw       0x18 ; запись в аккумулятор 
movwf       PORTB       ; перенос из аккумулятора в порт
call        Pause       ; переход на метку (с возвратом)

movlw       0x8 ; запись в аккумулятор 
movwf       PORTB       ; перенос из аккумулятора в порт
call        Pause       ; переход на метку (с возвратом)

movlw       0x0 ; запись в аккумулятор 
movwf       PORTB       ; перенос из аккумулятора в порт
call        Pause       ; переход на метку (с возвратом)

movlw       0x5 ; запись в аккумулятор 
            movwf       PORTA       ; перенос из аккумулятора в порт
		 call        Pause       ; переход на метку (с возвратом)

			movlw       0x1 ; запись в аккумулятор 
            movwf       PORTA       ; перенос из аккумулятора в порт
		 call        Pause       ; переход на метку (с возвратом)


			call miganie
 			goto        m1          ; переход на метку (зацикливание)


;delay = 500000 machine cycles
Pause     
            movlw       .173
            movwf       Reg_1
            movlw       .19
            movwf       Reg_2
            movlw       .6
            movwf       Reg_3
            decfsz      Reg_1,F
            goto        $-1
            decfsz      Reg_2,F
            goto        $-3
            decfsz      Reg_3,F
            goto        $-5
            nop
            nop
 
miganie     movlw       0x38 ; запись в аккумулятор 
                movwf       PORTB       ; перенос из аккумулятора в порт
			movlw       0xD ; запись в аккумулятор 
                movwf       PORTA       ; перенос из аккумулятора в порт
                call        Pause       ; переход на метку (с возвратом)
                movlw       0x0 ; запись в аккумулятор 
                movwf       PORTB       ; перенос из аккумулятора в порт
	  movlw       0x2 ; запись в аккумулятор 
                movwf       PORTA       ; перенос из аккумулятора в порт
                call        Pause       ; переход на метку (с возвратом)
                movlw       0x38 ; запись в аккумулятор 
                movwf       PORTB       ; перенос из аккумулятора в порт
	  movlw       0xD ; запись в аккумулятор 
                movwf       PORTA       ; перенос из аккумулятора в порт
                call        Pause       ; переход на метку (с возвратом)
                movlw       0x0 ; запись в аккумулятор 
                movwf       PORTB       ; перенос из аккумулятора в порт
	 movlw       0x2 ; запись в аккумулятор 
               movwf       PORTA       ; перенос из аккумулятора в порт
               call        Pause       ; переход на метку (с возвратом)
               movlw       0x38 ; запись в аккумулятор 
               movwf       PORTB       ; перенос из аккумулятора в порт
	 movlw       0xD ; запись в аккумулятор 
              movwf       PORTA       ; перенос из аккумулятора в порт
              call        Pause       ; переход на метку (с возвратом)
              movlw       0x0 ; запись в аккумулятор 
              movwf       PORTB       ; перенос из аккумулятора в порт
	 movlw       0x2 ; запись в аккумулятор 
               movwf       PORTA       ; перенос из аккумулятора в порт
               call        Pause       ; переход на метку (с возвратом)
	 return


	 end                     ; конец программы

*** маленькая подробность, схема собрана как для цифровой кости, на ней и играюсь. соответственно у меня задумка в коде:
1) начинать зажигать сегменты с A до F
2) помигать поочередно (A-F) и G
3) начинать тушить сегменты с A до F
4) вернуться к пункту 1
Вложения
01.gif
Цифровая кость
(9.47 КБ) 986 скачиваний
Реклама
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение otest »

LIST P=PIC16F628A
Написано неправильно LIST P=16F628A с отступом.
#INCLUDE <p16F628a.inc>
после вставки этого файла у вас полезут ошибки.
Вы пользуетесь программой для вычисления задержек, в ней нужно дописывать RETURN.
При выборе ячеек ОЗУ см файл Microchip/MPASM Suite/P16F628.INC
; RAM Definition
;
;====================

__MAXRAM H'01FF'
__BADRAM H'07'-H'09', H'0D', H'13'-H'14', H'1B'-H'1E'
как видите 0х0D нельзя использовать
В настройке МК нужно учитывать и вкл или выкл всю переферию , а не только ПОРТА ПОРТВ
Впредь выкладывайте проект MPLAB
Реклама
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение korsaj »

Вы зацикливаете контроллер на вот этом

Код: Выделить всё

Pause     
            movlw       .173
            movwf       Reg_1
            movlw       .19
            movwf       Reg_2
            movlw       .6
            movwf       Reg_3
            decfsz      Reg_1,F
            goto        $-1
            decfsz      Reg_2,F
            goto        $-3
            decfsz      Reg_3,F
            goto        $-5
            nop
            nop
 
miganie     movlw       0x38 ; запись в аккумулятор 
                movwf       PORTB       ; перенос из аккумулятора в порт
         movlw       0xD ; запись в аккумулятор 
                movwf       PORTA       ; перенос из аккумулятора в порт
                call        Pause       ; переход на метку (с возвратом)
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Огромное спасибо!! я действительно возврат не написал:(
а я весь день мучался с этим)) Невыспался наверное. Да и это первая "программа":)

Если будут какие нибудь непонятки, я буду сюда же писать) Заглядывайте иногда:)

Еще раз, огромное спасибо:)
Реклама
Эиком - электронные компоненты и радиодетали
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Поигрался с анимацией еще, с опросом кнопки и еще по мелочи.

Новые задачи - новые проблемы.
Пытаюсь сделать счетчик. (схема та же, пишу под нее же)
Нажатие на кнопку дает +1
начинает с 0,
если 9 на индикаторе, то помигать Н и сбросить на 0(это я допишу, не проблема:)
У меня не считает, на кнопку реагирует неадекватно. Буду признателен за помощь.
Еще беда, никак не пойму как мне таблицу прикрутить в моем случае. В простых примерах там индикатор на портуВ висит весь.
У меня половина там, половина там. Мой ход мысли в коде хоть немножко правильный?)
Спойлер

Код: Выделить всё

            LIST        P=PIC16F628A
             __CONFIG    0x3F11
F           EQU         1
W           EQU         0
STATUS      EQU         0x003
C           EQU         0x0
TRISA       EQU         0x005
PORTA       EQU         0x005
Rega		EQU			0x001A
Regb		EQU			0x001B
TRISB       EQU         0x006
PORTB       EQU         0x006
Reg_1       EQU         0x000C
Reg_2       EQU         0x000F
Reg_3       EQU         0x000E
Reg_4       EQU         0x0011
regw		EQU			0x001C
PC          EQU         0x002


            org         0           ; начало программы             
            bsf         STATUS,5    ; переход в Банк 1 
			movf		b'0000001',1
			movwf		TRISB
            clrf        TRISA
            bcf         STATUS,5    ; переход назад в Банк 0
			clrf        Reg_4
          	movlw       0x38
			movwf       PORTB
			movlw       0xd
			movwf       PORTA

; отслеживание нажатий кнопок
m3          
             btfss       PORTB,0     ; бит-проверка ножки RA3 - увеличение
             goto        m2
             goto        m3          ; зацикливание проверки
  ; проверка на 9 (на крайнее значение) и увеличение значения регистра

m2          bcf         STATUS,0    ; опускаем флаг С в ноль
            movlw       .247        ; (255-9)+1 = 247 -> W
            addwf       Reg_4,0     ; (Reg_4)+W
            btfss       STATUS,C ; 
             goto        m1
             goto        m4

m1          incf        Reg_4,0     ; увеличить значение на 1 и сохранить
			movwf		Regb
			incf 		Regb,0
			movwf		Rega

m4         
			movf		Reg_4,1
			movwf		Regb
			Movf        Regb,1
			call        TABLE
            movwf       PORTB
			incf 		Regb,0
			movwf		Rega
			Movf        Rega,1
			call        TABLE
            movwf       PORTA
            goto        m3


;==================
TABLE       addwf      PC,F        ; Содержимое счетчика команд PC = PC + W
             retlw      0x38 ; 0 B
			 retlw      0xD ; 0 A
             retlw      b'11000' ; 1 B
             retlw      0x0 ; 1 A
             retlw      b'110000' ; 2 B
             retlw      b'1110' ; 2 A
             retlw      b'111000' ; 3 B
             retlw      b'1010' ; 3 A
             retlw      b'11000' ; 4 B
             retlw      b'11' ; 4 A
             retlw      b'101000' ; 5 A
             retlw      b'1011' ; 5 B
             retlw      b'101000' ; 6 B 
             retlw      b'1111' ; 6 A
             retlw      b'11000' ; 7 B
             retlw      b'10' ; 7 A
             retlw      b'111000' ; 8 B
             retlw      b'1111' ; 8 A
             retlw      b'111000' ; 9 B
             retlw      b'1011' ; 9 A
             retlw      b'011000' ; H B
             retlw      b'0111' ; H A
 ;==================




Pause       movlw       .221
            movwf       Reg_1
            movlw       .130
            movwf       Reg_2
wr          decfsz      Reg_1, F
            goto        wr
            decfsz      Reg_2, F
            goto        wr
            nop
            nop
			return
            end                     ; конец программы
Вложения
Counter(button).rar
(8.92 КБ) 288 скачиваний
Реклама
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение otest »

Уважаемый!
Вы плохой ученик. Почему не исправили ошибки? Не верите мне посмотрите пример < Microchip\MPASM Suite\Template\Code\16F628ATEMP.ASM>.
Нет необходимости описывать спец. регистры они в файле INC уже назначены.
Инициализация МК не сделана.
Для кнопки нужно ввести антидребезг.
Реклама
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Каюсь, я плохой ученик.
и все-таки, почему не идет подсчет (или он просто не показывает значение, так как в таблице не все так тривиально...)
Код поправил, откомментировал, выровнял, кнопку в режиме антидребезг туда прописал, кнопку опрашивает.
(но дальше ничего нет).
Спойлер

Код: Выделить всё

            LIST        P=PIC16F628A
            #include    P16F628A.INC
            __CONFIG    _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _MCLRE_OFF & _LVP_OFF & DATA_CP_OFF & _CP_OFF

PC            EQU         0x0002
Rega	  EQU	   0x001A
Regb	  EQU	   0x001F
Reg_1       EQU         0x000C
Reg_2       EQU         0x000F
Reg_3       EQU         0x000E
Reg_4       EQU         0x0011


            org         0           ; начало программы          

   
   	BCF		INTCON,GIE  ; прерывания 
	BCF		RCSTA,7     ; USART off
	BCF		CCP1CON,3	; CCP off
	BCF		CCP1CON,2	; CCP off
	BCF		CCP1CON,1	; CCP off
	BCF		CCP1CON,0	; CCP off
	MOVLW   	007h       	; Порт A ВЫКЛЮЧАЕМ КОМПАРАТОРЫ 
            MOVWF   	CMCON  
            bsf          STATUS,5    ; переход в Банк 1 
            movlw     b'0000001'   ; запись в W 
            movwf    TRISB          ; порты В на выход, кроме RB0 он на кнопку
            clrf         TRISA          ; порты А на выход
            bcf         STATUS,5     ; переход назад в Банк 0
            clrf         Reg_4          ; очищаем регистр 
            movlw     0x38            ; зажигаем 3 сегмента порта В (5,4,3)
            movwf       PORTB       ;
            movlw       0xd            ; аналогично с А (3,2,0)
            movwf       PORTA       ;

                                              ; отслеживание нажатия кнопки

m1        btfss       PORTB,0      ; бит-проверка ножки RB0
            goto        m1	   ; если нажата, то RB0=1, перескакиваем на m2
m2        btfsc       PORTB,0      ; бит-проверка ножки RA2
            goto        m2              ; отслеживаем отжатие кнопки


; проверка на 9 (на крайнее значение) и увеличение значения регистра
m12      bcf           STATUS,C    ; опускаем флаг С в ноль
            movlw      .247             ; (255-9)+1 = 247 -> W
            addwf        Reg_4,0      ; (Reg_4)+W
            btfss          STATUS,C     ; Если переноса не было то идем на метку m11
            goto          m11           ; Если не было переноса
            goto          m14           ; если был перенос, перескакиваем сюда
  
m11      incf           Reg_4,F      ; увеличить значение на 1 и сохранить

m14      movf	Reg_4,1               ; копируем в W значение
            movwf	Regb 		 ; Копируем из W в регВ
            incf 	Regb,0		 ; Увеличиваем га единичку и оставляем в W
            movwf	Rega		 ; Копируем из W в регА (строчка ниже строчки В, запаздывает на единицу)
            Movf         Regb,W 		 ; Копируем в W содержимое регВ
            call           TABLE 		 ; обращение к таблице с готовым набором цифр
            movwf      PORTB 		 ; запись того что выдернуто из таблицы в регистр портаВ
				 ; аналогично с портом А
            Movf          Rega,W		 ; копируем в W содержимое регистра регА
            call           TABLE 		 ; обращение к таблице с готовым набором цифр
            movwf       PORTA 		 ; копируем из W в порт А
            goto           m1 		 ; возврат на отслеживание кнопки
			


;delay = 250000 machine cycles
Pause       movlw       .169
             movwf       Reg_1
             movlw       .69
             movwf       Reg_2
             movlw       .2
             movwf       Reg_3
wr          decfsz      Reg_1, F
             goto        wr
             decfsz      Reg_2, F
             goto        wr
             decfsz      Reg_3, F
             goto        wr
             return

;==================
TABLE       addwf      PC,F        ; Содержимое счетчика команд PC = PC + W
             retlw      0x38 	   ; 0 сегменты для порта  B
			 retlw      0xD 	   ; 0 сегменты для порта  A
             retlw      b'11000'   ; 1 сегменты для порта  B
             retlw      0x0        ; 1 сегменты для порта  A
             retlw      b'110000'  ; 2 сегменты для порта  B
             retlw      b'1110'    ; 2 сегменты для порта  A
             retlw      b'111000'  ; 3 сегменты для порта  B
             retlw      b'1010'    ; 3 сегменты для порта  A
             retlw      b'11000'   ; 4 сегменты для порта  B
             retlw      b'11'      ; 4 сегменты для порта  A
             retlw      b'101000'  ; 5 сегменты для порта  A
             retlw      b'1011'    ; 5 сегменты для порта  B
             retlw      b'101000'  ; 6 сегменты для порта  B 
             retlw      b'1111'    ; 6 сегменты для порта  A
             retlw      b'11000'   ; 7 сегменты для порта  B
             retlw      b'10'      ; 7 сегменты для порта  A
             retlw      b'111000'  ; 8 сегменты для порта  B
             retlw      b'1111'    ; 8 сегменты для порта  A
             retlw      b'111000'  ; 9 сегменты для порта  B
             retlw      b'1011'    ; 9 сегменты для порта  A
             retlw      b'011000'  ; H сегменты для порта  B
             retlw      b'0111'    ; H сегменты для порта  A
 ;==================





            end                     ; конец программы


Вложения
Counter(button).rar
(15.98 КБ) 210 скачиваний
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение otest »

Антидребезга нет. Кн. нужно опрашивать например 100-200мсек. Зависит от желаемой скорости.
Это без коментов. Сам посмотри.
m14 movf Reg_4,1 ; копируем в W значение
TABLE addwf PC,F ; Содержимое счетчика команд PC = PC + W
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Таак, добился того, что считает до 9 :)
уже радостно.
расписал таблицу на 2 таблицы, TABLEB TABLEA
из них дергает значения нормально:)

проверку на максимальное сейчас сделать и закольцевать....
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Может быть, всем и наплевать, но я достиг своей маленькой, но все же цели:)

Можете критиковать, или давать какие нибудь советы.
Можете дать "задачку" несложную, для этой схемы)))
Вложения
Counter(button).rar
(21.15 КБ) 269 скачиваний
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

Помогите разобраться с обработкой прерываний пожалуйста (ассемблер).
Допустим идет счетчик (самое банальное разумеется)
при нажатии на кнопку (на вывод RB7 ее подключил) происходит стоп.
при следующем нажатии - продолжение счета.

пока я усек только то, что надо установить биты GIE, PEIE RBIE регистра INTCON, и отслеживать флаг RBIF (INTCON,0).
не смог найти подходящего объяснения в иных источниках.
Так же интересен вопрос, можно ли организовать прерывание по регистру А?..

**следующим моим вопросом будет работа с таймерами (инициализация, прерывание по сравнению, прерывание по переполнению)
*** дальше будет вопрос про динамическую индикацию и ШИМ (вроде он используется для управление яркостью, и прочими фишечками то как мигание одним разрядом из например 4х) ... оО
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Vov123 »

На вот возьми просмотри,может быть на что сгодится
Вложения
TMR0.rar
(30.35 КБ) 294 скачивания
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

я по ходу контроллер убил :(
не шьется, читаются нули.

программатор все тот же, с лабкита. ну я им тыщу раз прошивал уже... часто прошивал, в 99% без ошибок все было.

что можете посоветовать?
последнее что заливал в аттаче. Так и не удалось с динамической индикацией разобраться. какой то бегущий рандом получился)
Вложения
DynInd.rar
(13.77 КБ) 252 скачивания
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение otest »

Не понятно как твой МПЛАБ пропускает опечатки
& _LVP_OFF & DATA_CP_OFF &
Попробуй такой конфиг
_XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BOREN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
На метку START программа никогда не попадёт.
Зачем прошивать 1000раз МК. В МПЛАБе есть симулятор для отладки или Протеус поставь.
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

почему не попадет?
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение otest »

Потому что нет команды обращения к этой метке.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Аlex »

Потому что безбашенный копипаст не спасёт. Думать нужно что копируешь и куда...
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Re: Pic16f628a, мигающие светодиоды (проблема с задержкой)

Сообщение Ican »

ну вот, поправил.
Вложения
DynInd.rar
(14.32 КБ) 250 скачиваний
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

Чтение данных из EEPROM

Сообщение Ican »

Не удается прочитать из EEPROM значения, которые потом необходимо вывести на 4х разрядный семисегментный индикатор.
взял из ДШ по примеру, не работает.
где я ошибся опять? :shock:

PS может уже с контроллером беда?..
когда в EEPROM что-то записано - ошибка возникает при сравнении, т.к. в нем остаются старые значения. Стирание не работает на EEPROM, а перезаписать поверх - пожалуйста.... Не нравится мне это. Точнее адреса 0001 и 0002 так себя ведут. Со всеми - не эксперементировал.
хотя, старые прошивки(предыдущая например которую выкладывал) - проишваются и работают.
Если прошить с MCLR - то вероятнее всего что МК не запустит программу при подаче питания (не понимаю почему!!!)

PPS сколько бы не пытался сегодня процедурно производить операцию чтения, индикации - ничерта не вышло. Хотелось бы конечно по-умному сделать: записал число в аккумулятор, вызвал процедуру, сделал действия. Следующее число в аккумулятор.... Не хватило фантазии.
Вложения
read.rar
(13.12 КБ) 258 скачиваний
Ответить

Вернуться в «PIC»