Thông báo

Collapse
No announcement yet.

Ngắt xảy ra khi đang ghi dữ liệu vào EEPROM

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Ngắt xảy ra khi đang ghi dữ liệu vào EEPROM

    các bạn cho hỏi giả sử đoạn chương trình sau:

    ORG 0
    goto main

    ORG 4
    goto ISR_hienthi

    ORG 5
    ........
    main
    ...
    ...
    call ghi_15byte_vao_EEPROM
    ...

    goto main

    khi chương trình con ghi_15byte_vao_EEPROM đang chạy thì xảy ra ngắt thì có bị ảnh hương gì không ?

  • #2
    Nguyên văn bởi phamkhuyen Xem bài viết
    các bạn cho hỏi giả sử đoạn chương trình sau:

    ORG 0
    goto main

    ORG 4
    goto ISR_hienthi

    ORG 5
    ........
    main
    ...
    ...
    call ghi_15byte_vao_EEPROM
    ...

    goto main

    khi chương trình con ghi_15byte_vao_EEPROM đang chạy thì xảy ra ngắt thì có bị ảnh hương gì không ?
    Bạn ghi vào EEPROM ngoài hay EEPROM của PIC? Tùy theo cách viết chương trinh con ghi EEPROM đó và chương trình xử lý ngắt mà ngắt có ảnh hưởng hay không.

    Thân,
    Biển học mênh mông, sức người có hạn

    Comment


    • #3
      to namqn
      đây là đoạn chương trình ghi từ ram vào EEPROM của Pic 16F877a

      Code:
      ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~						
      					;CHUONG TRINH DOC DU LIEU TU BO NHO EEPROM VAO RAM
      ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      			;du lieu lay tren RAM co dia chi: 			0x20 den 0x2E
      			;du lieu tuong ung tren EEPROMco dia chi: 	0x20 den 0x2E
      			;chuong trinh nay doc 15 byte lien tiep tu dia chi = 0x20 
      			;LU Y CHI LAY DU LIEU CHI CHUA TRONG 4 BIT CAO CUA BYTE
      
      
      READ_EEPROM
      			MOVLW	.15
      			MOVWF	TEMP
      			MOVLW	0X20			;BAT DAU TU D?A CHI 0X20 DOC LIEN TIEP 15 BYTE
      READ_NEXT_EE
      			MOVWF	FSR
      			MOVLW	B'00001111'
      			ANDWF	INDF, F			;XOA 4 BIT CAO <7:4> CUA LED HIEN TAI
      			BSF		STATUS, RP1
      			BCF		STATUS, RP0		;QUA BANK2
      			MOVF	FSR, W			;NAP DIA CHI EEPROM
      			MOVWF	EEADR			;DIA CHI EEPROM GIONG VOI DIA CHI TREN RAM
      			BSF		STATUS, RP0		;QUA BANK3
      			BCF		EECON1, EEPGD	;CHO PHEP EEPROM
      			BSF		EECON1, RD		;BAT DAU CHO PHEP READ
      			BCF		STATUS, RP0		;TRO LAI BANK2
      			MOVF	EEDATA, W		;DOC DU LIEU VAO W
      			BCF		STATUS, RP1
      			BCF		STATUS, RP0		;TRO VE BANK0			
      			IORWF	INDF			;GHI DU LIEU 4 BIT CAO <7:4> LEN RAM
      			INCF	FSR, W			;THU TUC QUA BYTE KE TIEP
      			DECFSZ	TEMP, F
      			GOTO	READ_NEXT_EE
      			RETURN

      Comment


      • #4
        Đoạn chương trình bạn đã post đâu có ghi vào EEPROM, nó đọc ra chứ.

        Thân,
        Biển học mênh mông, sức người có hạn

        Comment


        • #5
          Thực ra ghi vào eeprom mà ngắt xảy ra thì hay bị mất hoặc sai dữ liệu ghi vào , đến lúc đọc ra ( lấy giữ liệu ra ) để làm việc khác . Nếu thiết bị hoạt động ở phần sau hoạt động theo kiểu logic , chu kỳ thì thể nào cũng gây hỏng thiết bị do bị loạn
          - Chẳng hạn ta làm cái 2 công tắc bật đèn . trong 1 thời điểm chỉ có 1 đèn được bật thôi .
          Nếu bật 2 đèn thì cầu chì sẽ cháy nổ chẳng hạn .

          Bây giờ ta ghi dữ liệu này vào mà sai thì dễ toi lắm .

          --- Trong các datasheet của Microchip mà nói về ngắt thì đều nói cả rồi :

          - Khi ghi vào eeprom nội thì hãy Disable Ngắt .

          sau khi ghi xong thì Enable ngắt trở lại .
          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

          Comment


          • #6
            nếu bây giờ ta đặt chương trình ghi dữ liệu vào trong chương trình ngắt thì thế nào có ảnh hưởng không ?

            Comment


            • #7
              chương trình ghi vào EEPROM

              Code:
              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~						
              				;CHUONG TRINH GHI DU LIEU TU RAM VAO BO NHO EEPROM
              ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~			
              			;chuong trinh nay ghi du lieu 4 BIT cao cua 15BYTE lien tiep trong RAM vao EEPROM
              			;du lieu lay tren RAM co dia chi: 			0x20 den 0x2E
              			;du lieu tuong ung tren EEPROMco dia chi: 	0x20 den 0x2E
              
              			
              WRITE_EEPROM
              					MOVLW	.16
              					MOVWF	TEMP
              					MOVLW	0X20
              WRITE_NEXT			MOVWF	FSR
              					BSF		STATUS, RP1
              					BSF		STATUS, RP0		;SANG BANK3
              					BTFSC	EECON1, WR		; CHO PHAN CUNG XOA WR
              					GOTO	$-1
              	
              					BCF		STATUS, RP1		;TRO VE BANK0
              					BCF		STATUS, RP0
              					DECFSZ	TEMP,F
              					GOTO	NEXT1
              					BSF		INTCON, GIE
              					RETURN
              	
              NEXT1				BSF		STATUS, RP1		; QUA BANK2
              						MOVWF	EEADR			;DAT DIA CHI CHO EEPROM GIONG NHU FSR
              					BCF		STATUS, RP1		;TRO VE BANK0
              					MOVLW	B'11110000'
              					ANDWF	INDF, W			;DOC 4 BIT CAO CUA RAM VAO W
              					BSF		STATUS, RP1		;SANG QUA BANK2
              					MOVWF	EEDATA
              					BSF		STATUS, RP0		;SANG BANK3
              					BCF		EECON1, EEPGD	;CHON BO NHO EEPROM
              					BSF		EECON1, WREN	;CHO PHEP GHI
              					BCF		INTCON, GIE		;KHONG CHO PHEP NGAT
              			
              ;THU TUC BAT BUOT
              					MOVLW	0X55
              					MOVWF	EECON2
              					MOVLW	0XAA
              					MOVWF	EECON2
              					BSF		EECON1, WR		;BAT DAU GHI
              ;
              					BCF		EECON1, WREN
              					INCF	FSR, W
              					GOTO	WRITE_NEXT

              Comment


              • #8
                Đoạn chương trình bạn đã đưa lên ở post #7 là không có vấn đề, nếu bạn không quan tâm đến việc sẽ cấm ngắt trong khoảng thời gian chờ ghi vào EEPROM (mất vài ms cho mỗi ô nhớ).

                Thân,
                Biển học mênh mông, sức người có hạn

                Comment


                • #9
                  cho e hỏi chút, giờ đang ghi eeprom ngoài mà ngắt xảy ra có sao không? vì khi ngắt có lưu lại PCL,W...? khi đang ghi eeprom có cần thiết disable ngắt, ghi xong rồi enable lại không? giúp e với...sử dụng eeprom ngoài nhé

                  Comment

                  Về tác giả

                  Collapse

                  phamkhuyen Tìm hiểu thêm về phamkhuyen

                  Bài viết mới nhất

                  Collapse

                  Đang tải...
                  X