Atmega328P Datasheet 16. Interrupt

  • 9 Replies
  • 184 Views
*

Offline tha

  • *****
  • 968
    • View Profile
Re: Atmega328P Datasheet 16. Interrupt
« Reply #8 on: August 07, 2019, 03:46:28 pm »
อันนี้ลองทำเซทบิท IVSEL ย้าย interrupt ไปยัง boot section แต่ไม่โปรแกรม BOOTRST Fuse ก็สามารถทำงานได้แล้ว แต่จะต้องไม่บีบอัดโปรแกรมเลย คือต้องตั้ง Optimization : -O0 เลย เวลาคอมไพล์ได้ program size = 4258 bytes( 13.0% full) เลย แต่ถ้าบีบอัดโปรแกรมโดยตั้ง Optimization : -Os เวลาคอมไพล์ได้ program size = 330 bytes( 1.0% full) เอง แต่โปรแกรมทำงานไม่ได้ รวมถึงการเซท flag ด้วย ไม่ทำงานเลย เป็นเพราะอะไร ควรตั้งอย่างไรดีครับ

http://www.mediafire.com/file/oahhv06fkt2eyew/Boot_IVSEL_1.rar/file




*

Offline tha

  • *****
  • 968
    • View Profile
Re: Atmega328P Datasheet 16. Interrupt
« Reply #9 on: August 07, 2019, 04:09:27 pm »
ลองมาใช้ AVR8 GNU Toolchain จะได้ program size = 1998 bytes( 6.1% full) โดยตั้ง Optimization : -O0 เหมือนกัน ก็ทำงานได้ เล็กกว่ากันครึ่งต่อครึ่งเลย หามาลงกันเลยนะ ไม่รู้มีท่านใดบอกมาไหม ก็ขอขอบคุณมา ณ ที่นี้ด้วยครับ ที่แนะนำมา



นี่ AVR8 GNU Toolchain
https://www.microchip.com/mplab/avr-support/avr-and-arm-toolchains-c-compilers

นี่ Makefile
http://gnuwin32.sourceforge.net/packages/make.htm