Thông báo

Collapse
No announcement yet.

EEPROM và ROM của PIC có khác nhau không?

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

  • EEPROM và ROM của PIC có khác nhau không?

    Nguyên văn bởi phamthaihoa Xem bài viết
    Kiến trúc Harvard, tập lệnh RISC (Reduced instruction set computer)

    More info:
    http://vi.wikipedia.org/wiki/RISC
    http://en.wikipedia.org/wiki/Harvard_architecture
    Cho em hỏi câu này hơi lúa một chút nha , eeprom va rom trong pic co giống nhau kô? nếu co khác thì khác nhau thế nào?
    Em sử dụng ccs , khi biên dich em thay vùng rom có sử dụng 8% , nhưng trong code em viết kô hề có việc ghi vào eeprom ..
    Và trong ccs muốn biên dịch file hex để nạp riêng cho eeprom phải làm sao hả anh ? ( em chỉ muốn nạp riêng một số giá trị vào trực tiếp vùng nhớ của eeprom)
    Mong các anh chỉ giúp
    Thanks for all !

  • #2
    Nguyên văn bởi LUUTINH Xem bài viết
    Cho em hỏi câu này hơi lúa một chút nha , eeprom va rom trong pic co giống nhau kô? nếu co khác thì khác nhau thế nào?
    Em sử dụng ccs , khi biên dich em thay vùng rom có sử dụng 8% , nhưng trong code em viết kô hề có việc ghi vào eeprom ..
    Và trong ccs muốn biên dịch file hex để nạp riêng cho eeprom phải làm sao hả anh ? ( em chỉ muốn nạp riêng một số giá trị vào trực tiếp vùng nhớ của eeprom)
    Mong các anh chỉ giúp
    Thanks for all !
    EEPROM dùng để chỉ data EEPROM (EEPROM dùng cho dữ liệu, là vùng nhớ không bị mất nội dung khi cấp điện, ghi/xóa bằng điện). Với PIC16 hay PIC18, vùng nhớ này là các ô nhớ 8-bit.

    ROM (hay chính xác hơn là flash ROM) là vùng nhớ chứa chương trình của PIC. Với các PIC lõi 14-bit (đa số PIC16) thì mỗi ô nhớ trong vùng này dài 14 bit, còn với các PIC18 thì mỗi ô nhớ dài 16 bit.

    Do đó, EEPROM và (flash) ROM hoàn toàn khác nhau. Khi bạn viết chương trình, bạn đang sử dụng vùng (flash) ROM, do đó CCS C báo rằng bạn sử dụng 8% dung lượng (flash) ROM là bình thường.

    Để tạo ra các giá trị cụ thể cho một ô/vùng nhớ nào đó trong EEPROM, bạn tham khảo tài liệu hướng dẫn của CCS C về #rom (trong mục nói về Preprocessor Directive). Nếu bạn chưa biết link để download tài liệu hướng dẫn của CCS C, nó đây: http://www.ccsinfo.com/downloads/CReferenceManual.pdf.

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

    Comment


    • #3
      Nguyên văn bởi namqn Xem bài viết
      EEPROM dùng để chỉ data EEPROM (EEPROM dùng cho dữ liệu, là vùng nhớ không bị mất nội dung khi cấp điện, ghi/xóa bằng điện). Với PIC16 hay PIC18, vùng nhớ này là các ô nhớ 8-bit.

      ROM (hay chính xác hơn là flash ROM) là vùng nhớ chứa chương trình của PIC. Với các PIC lõi 14-bit (đa số PIC16) thì mỗi ô nhớ trong vùng này dài 14 bit, còn với các PIC18 thì mỗi ô nhớ dài 16 bit.

      Do đó, EEPROM và (flash) ROM hoàn toàn khác nhau. Khi bạn viết chương trình, bạn đang sử dụng vùng (flash) ROM, do đó CCS C báo rằng bạn sử dụng 8% dung lượng (flash) ROM là bình thường.

      Để tạo ra các giá trị cụ thể cho một ô/vùng nhớ nào đó trong EEPROM, bạn tham khảo tài liệu hướng dẫn của CCS C về #rom (trong mục nói về Preprocessor Directive). Nếu bạn chưa biết link để download tài liệu hướng dẫn của CCS C, nó đây: http://www.ccsinfo.com/downloads/CReferenceManual.pdf.

      Thân,
      Em đã đọc và cũng tạm hiểu , nhưng hiện giờ viết vẫn chưa được , đúng là nó cho phép lồng data vào trong file hex, và có thể viết data vào eeprom như ví dụ của ccs
      Code:
      #rom  0x2100={1,2,3,4,5,6,7,8}
      Em cũng đã mò hoài nhưng vẫn kô hiểu được cái chỉ thị tiền xử lý này nó làm cái gì .. em mò mẫm viết theo nhưng kết qua đọc từ eeprom ra chẳng thấy có sự thay đổi gì ... hic..hic.. viết kô được xem như giải thuật của em bị phá sản hic..hic...
      Các anh giúp em với ...
      Thanks for all !

      Comment


      • #4
        Code CCS su dung bộ EEPROM trong chip.
        Code:
        #include <16F877.h>
        #fuses HS,NOWDT,NOPROTECT,NOLVP
        #use delay(clock=20000000)
        #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
        
        #include "stdlib.h"
        #include <input.c>
        #include "limits.h"
        // The following initializes the first 4 locations of the data EERPOM
        //  using the #ROM directive
        #rom 0x2100={1,2,3,4}
        
        typedef int8 INTEE;
        
        void main() {
        
           unsigned int8 i, j, address;
           INTEE value;
        
           do {
              printf("\r\n\nEEPROM:\r\n");              // Display contents of the first 64
              for(i=0; i<=3; ++i) {                     // bytes of the data EEPROM in hex
                 for(j=0; j<=15; ++j) {
                    printf( "%2x ", read_eeprom( i*16+j ) );
                 }
                 printf("\n\r");
              }
              printf("\r\nLocation to change: ");
              address = gethex();
              printf("\r\nNew value: ");
              value = gethex();
        
              write_eeprom( address, value );
        
           } while (TRUE);
        }
        Last edited by linhnc308; 28-03-2008, 11:43. Lý do: add [code] tag
        Ethernet-RS232, PIC Webserver, RFID Reader
        CallerID, Cảnh báo BTS, ...
        0988006696
        linhnc308@gmail.com
        http://linhnc308.blogspot.com

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        • Quocthaibmt
          Trả lời cho [Hỏi] các Bác có ai còn dùng Đồng hồ kim (analog)
          Quocthaibmt
          đồng hồ số thì có nhiều ưu điểm , hiển thì kết quả rõ ràng , độ chính xác cao , đo được nhiều thông số ngành điện và điện tử , linh kiện như tụ , tần số (có hạn chế ) đo điện cảm L , đo nhiệt độ , đo được vài trăm Mega...
          hôm nay, 18:00
        • hoangtruongh
          Trả lời cho DIY máy que hàn xoay chiều thành 1 chiều
          hoangtruongh
          xin phép em đào mộ.nhưng muốn hỏi chủ thớt này có thành công không mà không thấy hồi âm nữa nhỉ.em cũng đang có ý định giống chủ thớt.em đã tự quấn 1 cái máy hàn từ fe của lioa 3kva ap ra 50v hàn ok nhưng thấy không ngọt lắm nên muốn...
          hôm nay, 18:00
        • ongjachongay
          Biến dinamo phát điện 12v thành máy cắt sắt
          ongjachongay
          Các anh chị em trên diễn đàn cho em hỏi ngu được không. Em có dư một cái dinamo phát điện xe tải, em muốn chế thành máy cắt sắt được không vậy. Quấn lại dùng điện 220v được không? Em xin cảm ơn!
          26-03-2017, 22:36
        • vi van pham
          Trả lời cho Biến dinamo phát điện 12v thành máy cắt sắt
          vi van pham
          Dynamo mèo mướp nói cách đây 40-50 năm người ta gọi là dynamo trái bí và không thể cấp nguồn 3 pha vào dynamo để quay dù để đuổi ruồi vì:
          1-Cặp cực startor và rotor từng pha không đồng bộ với nhau, cấp điện 3 pha vào dynamo, rotor không...
          hôm nay, 17:24
        • HTTTTH
          Trả lời cho [Hỏi] các Bác có ai còn dùng Đồng hồ kim (analog)
          HTTTTH
          Tôi vẫn còn 1 cái "mìn Claymo", cân vội cũng được gần 3kg, có thang đo điện áp 10kV DC.
          1 cái 4315 của Liên Xô, từ 1984 đến nay vẫn tốt, khung treo còn nguyên, chưa hỏng cái điện trở nào.
          1 cái HIOKI 3030, xài sướng thật....
          hôm nay, 17:24
        • Quocthaibmt
          Trả lời cho TV LCD- TV PLASMA- TV LED
          Quocthaibmt
          đó là một dạng sửa cho có tín hiệu từ bo t-com lên panel . ép cho nó lên , vì thế nó sẽ bị thiếu chi tiết hình ảnh , nhìn xa thì còn tạm được , chứ nhìn gần thì lem nhem lắm bác à , còn máy đã bị sọc , ngang hoặc dọc thì không cứu...
          hôm nay, 17:19
        • tuyennhan
          Trả lời cho TV LCD- TV PLASMA- TV LED
          tuyennhan
          Máy mình cũng bị thế này lại tốn tiền rồi ... à mình có lên youtube tìm cách sửaxem được cái clip sửa lcd sony hình đôi và bị mờ thấy hướng dẫn cách ly 8 chân trên cáp bẹ là xong sao kỳ vậy bác Thái chẳng lẽ máy tốt cách ly 8...
          hôm nay, 17:03
        • hoangtruongh
          Trả lời cho mạch điện tử điều khiển máy hàn
          hoangtruongh
          xin phép em đào mộ.nhưng muốn hỏi chủ thớt này có thành công không mà không thấy hồi âm nữa nhỉ.em cũng đang có ý định giống chủ thớt.em đã tự quấn 1 cái máy hàn từ fe của lioa 3kva ap ra 50v hàn ok nhưng thấy không ngọt lắm nên muốn...
          hôm nay, 16:01
        • mèomướp
          Trả lời cho Biến dinamo phát điện 12v thành máy cắt sắt
          mèomướp
          đúng rùi. thêm cái stato khác người của nó nữa. vụ này thì vấn đề của chủ thớt đã xong cái thứ ấy hông làm máy cắt sắt được. còn vấn đề nó có quay khi cấp điện 3 pha cho stato thì quan điểm của tớ là có và nó đủ để đuổi...
          hôm nay, 15:16
        • longnt2009
          Cần thông tin nơi bán cảm biến nhiệt AD592
          longnt2009
          Nhờ anh em hỗ trợ thông tin nơi có bán loại linh kiện cảm biến nhiệt AD592 các loại AN, BN và CN. Xin chân thành cám ơn.
          hôm nay, 14:35
        Đang tải...
        X