Thông báo

Collapse
No announcement yet.

hoi cách khai báo mảng trong atmega8

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

  • hoi cách khai báo mảng trong atmega8

    em mới tìm hiểu con atmega8 , mong các pác bớt chút time chỉ giúp em nhé:
    tình hình là thế này, em làm cái matran 8 x 96 3 màu, em khai báo font chữ trong biến ram thì mất nhiều dung lượng quá , em đọc thấy con này có eeprom, nhưng chưa biết làm thế nào với cách khai báo trong đó để lưu cái font chữ vào eeprom ? ( ở 89xxx thì em luu font chữ như kiểu sau unsigned char code font[50][8] ) nhưng ở atmega8 em chưa biết làm sao ? mong được sự giúp đỡ !!!!
    chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
    Everything should be made as simple as possible, but not simpler

  • #2
    lưu ở EEPROM , Flash ... IC rời ở ngoài ( rồi dùng phương pháp : tra bảng )... chứ lưu vào eeprom nội ... nó vẫn tính ROM code khi xử lý đó
    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


    • #3
      dùng ic ngoài thì em lại ngại lắm, bởi sợ mạch cồng kềnh, em muốn gói gọn trong 1 em atmega8 này. thấy em ấy có sram >1000 byte. nhưng nếu có cách nào lưu font chữ trong code thì tuyệt quá.
      chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
      Everything should be made as simple as possible, but not simpler

      Comment


      • #4
        Nguyên văn bởi daohuytien Xem bài viết
        dùng ic ngoài thì em lại ngại lắm, bởi sợ mạch cồng kềnh, em muốn gói gọn trong 1 em atmega8 này. thấy em ấy có sram >1000 byte. nhưng nếu có cách nào lưu font chữ trong code thì tuyệt quá.
        vậy thì bạn phải tạo code ( font ) rồi ghi vào eeprom nội bằng bộ nạp. Sau đó đọc ra và sài ( như là eeprom ở ngoài thôi ) ... các mạch nạp đều có thể làm việc này ! chứ cứ khai báo mảng là nó ngốn rom rồ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


        • #5
          vậy mình tạo một file chứa font chữ rồi ghi vào eeprom sau đó trong chương trình mình đọc ra thì nó có tốn nhiều time không pác queduong ( ý em hỏi là thời gian đọc dữ liệu ở eeprom có mất nhiều time không )?
          Last edited by daohuytien; 23-04-2013, 01:34.
          chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
          Everything should be made as simple as possible, but not simpler

          Comment


          • #6
            Nguyên văn bởi daohuytien Xem bài viết
            vậy mình tạo một file chứa font chữ rồi ghi vào eeprom sau đó trong chương trình mình đọc ra thì nó có tốn nhiều time không pác queduong ( ý em hỏi là thời gian đọc dữ liệu ở eeprom có mất nhiều time không )?
            đọc eeprom nội , xử lý ... bạn view asm ra xem lệnh là biết mất bao thời gian
            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


            • #7
              Nguyên văn bởi daohuytien Xem bài viết
              em mới tìm hiểu con atmega8 , mong các pác bớt chút time chỉ giúp em nhé:
              tình hình là thế này, em làm cái matran 8 x 96 3 màu, em khai báo font chữ trong biến ram thì mất nhiều dung lượng quá , em đọc thấy con này có eeprom, nhưng chưa biết làm thế nào với cách khai báo trong đó để lưu cái font chữ vào eeprom ? ( ở 89xxx thì em luu font chữ như kiểu sau unsigned char code font[50][8] ) nhưng ở atmega8 em chưa biết làm sao ? mong được sự giúp đỡ !!!!
              anh ơi cho em hỏi em khai báo unsigned char code font chữ với unsigned char flash font chữ thì có gì khác ko, em phải khai báo cho con trỏ dữ liệu như thế nào nếu em dùng 1 trong 2 khai báo font chữ trên ạ vd:
              em có mảng font chữ unsigned char code font={.....data.....};
              con trỏ địa chỉ unsigned char ..... buff[..];
              nếu em sử dụng thêm biến để chứa dữ liệu từ con trỏ thì em khai báo biến đó thế nào ạ, em sử dụng phần mềm codevisionavr
              |

              Comment


              • #8
                oh mình cũng đang đi hỏi mấy anh làm quen rồi. chưa có được lời giải đáp cho bạn được. ở trong 89 xx thì mình khai báo unsigned char code font[][]; được nhưng ở trong avr thì có lẽ là không được.
                chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
                Everything should be made as simple as possible, but not simpler

                Comment


                • #9
                  Nguyên văn bởi daohuytien Xem bài viết
                  oh mình cũng đang đi hỏi mấy anh làm quen rồi. chưa có được lời giải đáp cho bạn được. ở trong 89 xx thì mình khai báo unsigned char code font[][]; được nhưng ở trong avr thì có lẽ là không được.
                  nếu dùng pointer bạn có thể lưu trong eeprom :

                  eeprom char mystring[] = "Xin Chao"; //lưu " Xin Chao" vào eeprom

                  Pointer :
                  eeprom char *p = &mystring[0];
                  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


                  • #10
                    const unsigned char arr[50][8];
                    Bác thử như vậy xem

                    Comment


                    • #11
                      Nguyên văn bởi kidteam Xem bài viết
                      const unsigned char arr[50][8];
                      Bác thử như vậy xem
                      Thử cái này thì giải quyết được gì ? nó vẫn ngốn rom code ,

                      muốn lưu trực tiếp lên eeprom , Sram, rx .... thì dùng cách ở trên kia là OK.

                      --- Mỗi trình dịch có support hoặc có cách viết nào đó để trong suốt quá trình " Nạp " nó sẽ tự động " ghi " mảng này vào bộ nhớ ... và ta tận dụng được tối đa rom code ( flash ) để xử lý , lập trình.
                      Chứ khai báo trên flash ... nó ngốn hết rom code ... thì lấy chỗ đâu mà viết . Nhất là mấy cái font chữ !

                      --- Mình sài mikroC thì trong đó có : code , data , rx, io , sfr ... nghĩa là có nhiều chỗ để lưu trữ ( ví như ta có thể lưu thẳng vào SRAM )
                      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


                      • #12
                        Nguyên văn bởi daohuytien Xem bài viết
                        oh mình cũng đang đi hỏi mấy anh làm quen rồi. chưa có được lời giải đáp cho bạn được. ở trong 89 xx thì mình khai báo unsigned char code font[][]; được nhưng ở trong avr thì có lẽ là không được.
                        Em trả lời cho câu hỏi này anh [MENTION=45]queduong[/MENTION] ạ

                        Comment


                        • #13
                          Cái unsigned char code font ở 89 tương đương với const unsigned char font. Biến font này sẽ lưu trong flash. 89 hay avr cũng như nhau thôi.
                          AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                          Xem thêm tại Online Store ---> Click here
                          Mob: 0982.083.106

                          Comment


                          • #14
                            em thấy khai báo kiểu const unsigned char font[][] và unsigned char flash font[][] đều như nhau các pác à.
                            em phải tìm hiểu theo kiểu của pác queduong thôi, lưu vào trong eeprom. thank các pác nhé
                            như pác queduong nói lưu thẳng vào Sram thì chắc là Sram này phải lớn lắm . chứ em làm thử nghiệm chơi chơi mà có cái font[33][8] bé bé mà đã ngốn mất 280 byte của sram rùi.
                            thực ra em đang muốn dùng em atmega8 này để quét 10 tấm module 1 màu 16 x 32. cho nó rẻ để chơi ở nhà .
                            Last edited by daohuytien; 23-04-2013, 22:43.
                            chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
                            Everything should be made as simple as possible, but not simpler

                            Comment


                            • #15
                              Nguyên văn bởi daohuytien Xem bài viết
                              em thấy khai báo kiểu const unsigned char font[][] và unsigned char flash font[][] đều như nhau các pác à.
                              em phải tìm hiểu theo kiểu của pác queduong thôi, lưu vào trong eeprom. thank các pác nhé
                              Có nhiều chỗ có thể dùng để lưu " cố định - CONST " dữ liệu . Tùy từng trường hợp cụ thể mà ta lưu nó ở đâu.
                              Lưu ở chỗ nào thì ta sẽ " tốn bộ nhớ " ở chỗ đó.

                              VD mình sài con ATMEGA8 ... code viết hiệu ứng , công việc hết gần 8K rồi ... giờ lại còn mấy cái font chữ ( đại loại như vậy ) ... mà không sài EEPROM , không sài hết SRAM ... thì có thể " ghi vào đấy "

                              - Còn bộ nhớ flash mà lớn ... thì cứ khai báo như thường ... chẳng phải khổ !
                              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

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X