Перезагрузка микроконтроллера

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
abc
Друг Кота
Сообщения: 3685
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Перезагрузка микроконтроллера

Сообщение abc »

... в любом случае, даже 10MHz и PIC16 c PLL хватает на то, чтобы просто управлять адресуемыми светодиодами.

Реклама
titr
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Вт май 07, 2013 23:16:23

Re: Перезагрузка микроконтроллера

Сообщение titr »

[uquote="abc",url="/forum/viewtopic.php?p=3640846#p3640846"]... в любом случае, даже 10MHz и PIC16 c PLL хватает на то, чтобы просто управлять адресуемыми светодиодами.

У меня и есть 10 Мгц с PLL, токо pic18f2620, на халяву достался).
Реклама
titr
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Вт май 07, 2013 23:16:23

Re: Перезагрузка микроконтроллера

Сообщение titr »

Здравствуйте Радиокоты!
В очередной раз прошу помощи.
Контроллер идет в перезагрузку, почему идет не могу понять.
Прога простенькая( для показа), что она у меня доходит до выделенной строчки (в дебаггере mplabx)
и выскакивает лист дизассемблера, правда если дальше по шагам в дебаггере движешься все ок. И в железе
вижу, что перезагружается контроллер. Понимаю, что прога летит куда то в память программы с последующей
перезагрузкой контроллера.

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

 #include "p18f452.inc"
;-------------------------------------------------------------------------------
; CONFIG1H
  CONFIG  OSC = HSPLL          ; Oscillator Selection bits (HS oscillator with PLL enabled/Clock frequency = (4 x FOSC))
  CONFIG  OSCS = OFF            ; Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source))

; CONFIG2L
  CONFIG  PWRT = ON            ; Power-up Timer Enable bit (PWRT disabled)
  CONFIG  BOR = OFF             ; Brown-out Reset Enable bit (Brown-out Reset enabled)
  CONFIG  BORV = 20             ; Brown-out Reset Voltage bits (VBOR set to 2.0V)

; CONFIG2H
  CONFIG  WDT = OFF            ; Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))
  CONFIG  WDTPS = 128           ; Watchdog Timer Postscale Select bits (1:128)

; CONFIG3H
  CONFIG  CCP2MUX = OFF         ; CCP2 Mux bit (CCP2 input/output is multiplexed with RB3)

; CONFIG4L
  CONFIG  STVR = OFF            ; Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will not cause RESET)
  CONFIG  LVP = ON              ; Low Voltage ICSP Enable bit (Low Voltage ICSP enabled)

; CONFIG5L
  CONFIG  CP0 = OFF             ; Code Protection bit (Block 0 (000200-001FFFh) not code protected)
  CONFIG  CP1 = OFF             ; Code Protection bit (Block 1 (002000-003FFFh) not code protected)
  CONFIG  CP2 = OFF             ; Code Protection bit (Block 2 (004000-005FFFh) not code protected)
  CONFIG  CP3 = OFF             ; Code Protection bit (Block 3 (006000-007FFFh) not code protected)

; CONFIG5H
  CONFIG  CPB = OFF             ; Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected)
  CONFIG  CPD = OFF             ; Data EEPROM Code Protection bit (Data EEPROM not code protected)

; CONFIG6L
  CONFIG  WRT0 = OFF            ; Write Protection bit (Block 0 (000200-001FFFh) not write protected)
  CONFIG  WRT1 = OFF            ; Write Protection bit (Block 1 (002000-003FFFh) not write protected)
  CONFIG  WRT2 = OFF            ; Write Protection bit (Block 2 (004000-005FFFh) not write protected)
  CONFIG  WRT3 = OFF            ; Write Protection bit (Block 3 (006000-007FFFh) not write protected)

; CONFIG6H
  CONFIG  WRTC = OFF            ; Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected)
  CONFIG  WRTB = OFF            ; Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected)
  CONFIG  WRTD = OFF            ; Data EEPROM Write Protection bit (Data EEPROM not write protected)

; CONFIG7L
  CONFIG  EBTR0 = OFF           ; Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks)
  CONFIG  EBTR1 = OFF           ; Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks)
  CONFIG  EBTR2 = OFF           ; Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks)
  CONFIG  EBTR3 = OFF           ; Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks)

; CONFIG7H
  CONFIG  EBTRB = OFF           ; Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks)

;=========================
;	ПЕРЕМЕННЫЕ
;=========================
    CBLOCK	H'10'	 	
    n	    ;ДЛЯ ВСЯКОЙ ЕРУНДЫ
    Reg_1
    Reg_2
    Reg_3 ;РЕГИСТРЫ ДЛЯ РАЗНЫХ ЦЕЛЕЙ  
    data_USART
     ENDC
    
    CBLOCK	H'80'   
    W_TEMP	;variable used for context saving 
    STATUS_TEMP	;variable used for context saving
    BSR_TEMP	;variable used for context saving
    ENDC
 
;    CBLOCK	H'100'
;    pix_RGB : 162		;ПЕРЕМЕННЫЕ ПИКСЕЛЕЙ (ПО ТРИ БАЙТА RBG) ОЧЕРЕДНОСТЬ G-R-B
;    ENDC					;54*3=162
;=========================
;	    КОНСТАНТЫ
;=========================
;		ВЫХОДЫ
;-------------------------------------------------------------------------------	
#DEFINE		LED_RED 	LATD,6	;КРАСНЫЙ СВЕТОДИОД НА ПЛАТЕ
#DEFINE		LED_GREEN	LATD,7	;ЗЕЛЁНЫЙ СВЕТОДИОД НА ПЛАТЕ
#DEFINE		LED_BLUE	LATB,4	;СИНИЙ СВЕТОДИОД НА ПЛАТЕ
;-------------------------------------------------------------------------------
;		ВХОДЫ
;------------------------------------------------------------------------------- 
#DEFINE	ENCODER1		PORTC,1	;ЭНКОДЕР 
#DEFINE	ENCODER2		PORTC,2	;ЭНКОДЕР
;-------------------------------------------------------------------------------
BSR_SFR		EQU		.1    	 ;ВЫБОР БАНКА SFR 
;=========================
;   ДАННЫЕ EEPROM
;=========================
DATAEE    ORG	    0XF00000
    DE	    "CubikRubik"
    DE      "titr"        ; Place 't' 'i' 't' 'r'
    DE	H'2B',H'BB',H'BB',H'00',H'55',H'88',H'00',H'11'	
    DE	.255,.255,.128,.0,.49,.99,.52,.126
;=========================
    ORG    H'0'            ; processor reset vector
    NOP
    GOTO    START                   ; go to beginning of program
;-------------------------------------------------------------------------------	
;   ПРЕРЫВАНИЕ 
    ORG	H'8'
 	MOVFF	STATUS,STATUS_TEMP	;SAVE STATUS REGISTER
    MOVFF	WREG,W_TEMP         ;SAVE WORKING REGISTER
    MOVFF	BSR,BSR_TEMP		;SAVE BSR REGISTER
	
	MOVF    RCREG,W
    MOVWF	data_USART
    
    MOVFF	BSR_TEMP,BSR		;RESTORE BSR REGISTER
    MOVFF	W_TEMP,WREG         ;RESTORE WORKING REGISTER
    MOVFF	STATUS_TEMP,STATUS	;RESTORE STATUS REGISTER
    RETFIE 
;=======
 ;	     ИНИЦИАЛИЗАЦИЯ
;=========================
    ORG		H'26' 
START
    CLRF		       PORTA		;7 БИТ
    CLRF		       LATA
    MOVLW		B'00000000'
    MOVWF		ADCON1		;ЦИФРОВЫЕ I/O
    MOVLW		B'00000000'	;1,2,3,4,6,7-ВХОДЫ, 0,5-ВЫХОДЫ
    MOVWF		TRISA		;
    CLRF		        PORTB		; 8 БИТ
    CLRF		        MOVLW		B'00000000'	;ПРОВЕРИТЬ SS=1
    MOVWF		TRISB		;ВЫХОДЫ 0,5,6,7; ВХОДЫ 1,2,3,4 КНОПКИ УПРАВЛЕНИЯ
    CLRF		        PORTC		; 8 БИТ
    CLRF		        LATC
    MOVLW		B'10000110'	;
    MOVWF		TRISC		;1,2 - ЭНКОДЕР-ВХОДЫ,6-TX-ВЫХОД, 7-RX-ВХОД, ОСТАЛЬНЫЕ ВЫХОДЫ
    CLRF		        PORTD		; 8 БИТ
    CLRF		        LATD
    MOVLW		B'00000000'	;
    MOVWF		TRISD		;ПОКА ВСЕ ВЫХОДЫ
    CLRF		        PORTE		;3 БИТA
    CLRF		LATE
    MOVLW		B'00000111'
    MOVWF		ADCON1		;ЦИФРОВЫЕ I/O
    MOVLW		B'00000000'	;1,2,3,4,6,7-ВХОДЫ, 0,5-ВЫХОДЫ
    MOVWF		TRISE		;
    MOVLW		B'00000000'	;12 mhz
    MOVWF		OSCCON		;ВНЕШНИЙ КВАРЦ, 12 МГЦ (PLL*4=48 МГЦ)
    CLRF		LATA
    CLRF		LATB
    CLRF		LATC
    CLRF		LATD
    CLRF		LATE 	
    BCF		INTCON,GIE_GIEH,ACCESS	;ПРЕРЫВ.   ЗАПРЕЩЕНЫ
;-----------------------------------------------------------------------------
 ; ПОМОРГАЕМ
;-----------------------------------------------------------------------------
   BSF          LED_RED
  CALL         DELAY_300ms; ТУТ СПОТЫКАЕТСЯ ПРОГРАММА И ВЫСКАКИВАЕТ ЛИСТ ДИЗАССЕМБЛЕРА!
   BCF          LED_RED
   BCF          LED_GREEN
   BCF          LED_BLUE
   MOVLW        .80
   MOVWF        n
NNN   
   BSF          LED_GREEN
  CALL         DELAY_300ms 
   BCF          LED_GREEN
   MOVLW        .55
   MOVWF        data_USART
   BSF          LED_BLUE
   CALL         DELAY_300ms
   BCF          LED_BLUE
   INCF         n,F
   RLNCF        data_USART,F
   BRA          NNN
   
    
DELAY_300ms	
	movlw       .68
	movwf       Reg_1
	movlw       .68
	movwf       Reg_2
	movlw       .19
	movwf       Reg_3
	decfsz      Reg_1
	bra         $-2
	decfsz      Reg_2
	bra         $-6
	decfsz      Reg_3
	bra         $-.10
	RETURN	
;========
 
    END
Ответить

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