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

        • trunglq2007
          Nguồn AC/DC/DC
          trunglq2007
          Chào Anh em, tôi có con nguồn AC/DC/DC tức là nguồn AC/DC có PFC , đầu vào 10-264; đầu ra 12V/125 ampe sửa mãi chưa tìm ra bị chỗ nào; nhưng có thắc măc là không hiểu sao điện áp sau cầu diode là 192V, điện áp sau PFC chỉ 294V; theo lý thuyết thì...
          hôm nay, 06:08
        • trunglq2007
          Nguồn AC/DC/DC
          trunglq2007
          Chào Anh em, tôi có con nguồn AC/DC/DC tức là nguồn AC/DC có PFC , đầu vào 10-264; đầu ra 12V/125 ampe sửa mãi chưa tìm ra bị chỗ nào; nhưng có thắc măc là không hiểu sao điện áp sau cầu diode là 192V, điện áp sau PFC chỉ 294V; theo lý thuyết thì...
          hôm nay, 06:06
        • Snake2017
          Trả lời cho Tổng hợp các bài viết về IC TDA7294
          Snake2017
          Loay hoay mấy ngày . Rút lại con tụ input chọn trên 1uf-2uf em thấy ổn nhất các bác ạ . Quyết định cuối cùng em dùng 1uf. Đêm khuya nghe good . Đủ bass . Đặc biêt tiếng mid tuyệt . Cái lỗ tai em thôi nhé . Hihihi
          hôm nay, 00:53
        • thanhfdc
          Trả lời cho HỎI VỀ MẠCH BOOST/BUCK
          thanhfdc
          Chủ thớt ko có KN làm mạch CS nên có vấn đề cũng thường thôi. Khỏi nói chất lượng IC, cuộn cảm, tụ lọc. Đường dây mạch in mà ko chuẩn thì cũng vãi tè.

          Người có KN thì chỉ 1 tầng với flyback. Vừa cách ly, vừa có thể nâng...
          hôm nay, 00:46
        • dinhthuong80
          Trả lời cho TỰ LÀM 600W PURESINE INVERTER 12VDC - 220VAC (Mở lại chủ đề của thanhfdc bị xóa nhầm)
          dinhthuong80
          Cầu H igbt-mos đó ở bản DIP vì mình hết mos và test méo sóng với tải compact. Nhưng chắc do ổn áp cũng tốt nên tuy "tạp nham" mà không ảnh hưởng dạng sóng vì không đồng bộ. Còn bản SMD đang test là 4 con 23NM60 0.17 miliOhm mà.
          hôm nay, 00:40
        • tuyenda1985
          Hỏi về mạch triav hạ áp 220v xuống 110v?
          tuyenda1985
          Các bác cho em hỏi chút. Em con máy mày góc nhật bãi 100v 700w. Em định dùng triac hạ áp 220v xuốn 110v.
          Nhưng đọc qua thì thấy bảo dùng triac thì công xuất sẽ bị giảm nhiều? Không biết có đúng không.
          Vì em muốn dùng triac cho nó gọn....
          08-12-2017, 00:59
        • thanhfdc
          Trả lời cho Hỏi về mạch triav hạ áp 220v xuống 110v?
          thanhfdc
          Cái này thấy rồi á. Tải cảm thông thường, tải thuần trở thấy ông thợ điện tử bạn mình thay chạy cũng được. Tải cảm như động cơ đa năng có thổi than thì cũng tùy. Có chết họ thay con BT hay BTA dòng to hơn vào. Cũng ko tệ. Làm kiểu...
          hôm nay, 00:13
        • thanhfdc
          Trả lời cho TỰ LÀM 600W PURESINE INVERTER 12VDC - 220VAC (Mở lại chủ đề của thanhfdc bị xóa nhầm)
          thanhfdc
          Cũng phải. Qg, tr, tf, td on- off... Test tải thì còn Ig, Rdson... Lấy cái cữ ko chuẩn thì làm sao mà test nhưng cái khác chuẩn được. Như cái thước ko chuẩn thì đo cái khác làm sao.

          Disabled ổn áp đi. Sóng đẹp là do lấy mẫu để ổn áp....
          Hôm qua, 23:37
        • bqviet
          Trả lời cho Hỏi về mạch triav hạ áp 220v xuống 110v?
          bqviet
          Thyristor và triac dùng với tải cảm sinh ra nhiều vấn đề. Chuyện này đã được viết trong nhiều tài liệu, giáo trình, appnote ... đủ cả. Không chỉ sinh nhiễu, bị tác động bởi nhiễu, 2 loại linh kiện kể trên bị ảnh hưởng mạnh bởi hiện...
          Hôm qua, 23:30
        • TP_Electro
          Trả lời cho TỰ LÀM 600W PURESINE INVERTER 12VDC - 220VAC (Mở lại chủ đề của thanhfdc bị xóa nhầm)
          TP_Electro
          Bạn Thương làm cầu h gì mà tạp nham, bất đồng bộ dễ sợ! Dùng 1 loại cho nó tốt, như bạn đôi khi ảnh hưởng đến dạng sóng cũng nên.

          Sóng mình giản ra thấy còn gợn chổ bắt đầu sườn lên. Cũng đag tìm nguyên nhân là do ...
          Hôm qua, 23:24
        Đang tải...
        X