<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://wiki.nxez.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.nxez.com/feed.php">
        <title>创客百科 arduino:avrgcc</title>
        <description></description>
        <link>https://wiki.nxez.com/</link>
        <image rdf:resource="https://wiki.nxez.com/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-12T07:46:46+08:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:adcl_adch?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:adcsra?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:admux?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:bit_is_set?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:bv?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:cli?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:ddrx?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:eicra?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:interrupt_vectors?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:isr?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:lpm?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:lpm_enhanced?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:lpm_word?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:lpm_word_enhanced?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:mmio_byte?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:mmio_word?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:ocrnx?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:pgm_read_byte?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:pgm_read_byte_near?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:pgm_read_word?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:pgm_read_word_near?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:portxn?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sei?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_addr?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_byte?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_io8?rev=1482675312&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_mem8?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_mem16?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_mem_addr?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sfr_word?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:signal?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:sreg?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:tccrnx?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:tcntn?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:tifrn?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:timskn?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:usart0?rev=1482675314&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nxez.com/arduino:avrgcc:vector?rev=1482675314&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.nxez.com/lib/tpl/dokuwiki/images/favicon.ico">
        <title>创客百科</title>
        <link>https://wiki.nxez.com/</link>
        <url>https://wiki.nxez.com/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:adcl_adch?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:adcl_adch</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:adcl_adch?rev=1482675312&amp;do=diff</link>
        <description>ADCL/ADCH

Abstract

The ADCD/ADCH are registers which store the result of AD conversion.

Source Code

The ADCD/ADCH are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define ADCL _SFR_MEM8(0x78)
#define ADCH _SFR_MEM8(0x79)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:adcsra?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:adcsra</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:adcsra?rev=1482675312&amp;do=diff</link>
        <description>ADCSRA

Abstract

The ADCSRA(ADC Control and Status Register A) is a register to control AD conversion.

Source Code

The ADCSRA is defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define ADCSRA _SFR_MEM8(0x7A)
#define ADPS0 0
#define ADPS1 1
#define ADPS2 2
#define ADIE 3
#define ADIF 4
#define ADATE 5
#define ADSC 6
#define ADEN 7</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:admux?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:admux</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:admux?rev=1482675312&amp;do=diff</link>
        <description>ADMUX

Abstract

The ADMUX(ADC Multiplexer Selection Register) is a register that controls the reference voltage, the presentation of the ADC conversion(left adjust or right adjust) and analog channel selection.

Source Code

The ADMUX is defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:bit_is_set?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:bit_is_set</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:bit_is_set?rev=1482675312&amp;do=diff</link>
        <description>bit_is_set()

Abstcact

The bit_is_set() is a macro that checks if the second argumen-th bit of the first argument is 1.

Source Code

The bit_is_set() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) &amp; _BV(bit))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:bv?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:bv</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:bv?rev=1482675312&amp;do=diff</link>
        <description>_BV()

Abstract

The _BV() is a macro that shifts 1 to left by the specified numnber.

Source Code

The _BV() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h, as shown below.

#define _BV(bit) (1 &lt;&lt; (bit))

The _BV() is a macro that shifts 1 to left by the specified numnber. For example _BV(5) would be 0b00100000.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:cli?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:cli</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:cli?rev=1482675312&amp;do=diff</link>
        <description>cli()

Abstract

The cli() is a macro that executes an assembler instruction to disable interrupts.

Source Code

The cli() is defined in hardware/tools/avr/avr/include/avr/interrupt.h as below.


# define cli()  __asm__ __volatile__ (&quot;cli&quot; ::)


The cli is an assembler instruction to disable interrputs.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:ddrx?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:ddrx</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:ddrx?rev=1482675312&amp;do=diff</link>
        <description>DDR

Abstract

The DDR(Data Direction Register)s are registers which determine if the digital pin is output mode or input mode. There are three registers called DDRB, DDRC and DDRD.

Source Code

The DDRB, DDRC and DDRD are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:eicra?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:eicra</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:eicra?rev=1482675312&amp;do=diff</link>
        <description>EICRA/EIMSK

Abstcact

The EICRA/EIMSK are registers to control external interrupts.

Source Code

The EICRA and EIMSK are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define EICRA _SFR_MEM8(0x69)
#define ISC00 0
#define ISC01 1
#define ISC10 2
#define ISC11 3

#define EIMSK _SFR_IO8(0x1D)
#define INT0 0
#define INT1 1</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:interrupt_vectors?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:interrupt_vectors</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:interrupt_vectors?rev=1482675312&amp;do=diff</link>
        <description>Interrupt Vectors

Abstract

Definitions of the interrupt vectors.

Source Code

The interrupt vectors related codes are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


/* Interrupt Vectors */
/* Interrupt Vector 0 is the reset vector. */
#define INT0_vect         _VECTOR(1)   /* External Interrupt Request 0 */
#define INT1_vect         _VECTOR(2)   /* External Interrupt Request 1 */
#define PCINT0_vect       _VECTOR(3)   /* Pin Change Interrupt Request 0 */
#define PCINT1_ve…</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:isr?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:isr</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:isr?rev=1482675312&amp;do=diff</link>
        <description>ISR()

Abstract

The ISR() is a macro to define a function to register with an interrupt vector.

ソースコード

The ISR() is defined in hardware/tools/avr/avr/include/avr/interrupt.h as below.


#  define __INTR_ATTRS used, externally_visible
#  define ISR(vector, ...)            \
    extern &quot;C&quot; void vector (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__; \
    void vector (void)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:lpm?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:lpm</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:lpm?rev=1482675312&amp;do=diff</link>
        <description>__LPM()

Abstract

The __LPM() is a macro that reads a byte of data stored in a specified address(PROGMEM area).

Source Code

The __LPM() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.

#define __LPM(addr)         __LPM_enhanced__(addr)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:lpm_enhanced?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:lpm_enhanced</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:lpm_enhanced?rev=1482675312&amp;do=diff</link>
        <description>__LPM_enhanced__()

Abstract

The __LPM_enhanced() is an assembler code that reads a byte of data stored in a specified address(PROGMEM area).

Source Code

The __LPM_enhanced() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.


#define __LPM_enhanced__(addr)  \
(__extension__({                \
    uint16_t __addr16 = (uint16_t)(addr); \
    uint8_t __result;           \
    __asm__                     \
    (                           \
        &quot;lpm %0, Z&quot; &quot;\n\t&quot;      \
  …</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:lpm_word?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:lpm_word</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:lpm_word?rev=1482675312&amp;do=diff</link>
        <description>__LPM_word()

Abstract

The __LPM() is a macro that reads a word of data stored in a specified address(PROGMEM area).

Source Code

The __LPM_word() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.

#define __LPM_word(addr)    __LPM_word_enhanced__(addr)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:lpm_word_enhanced?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:lpm_word_enhanced</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:lpm_word_enhanced?rev=1482675312&amp;do=diff</link>
        <description>__LPM_word_enhanced__()

Abstarct

The __LPM_enhanced() is an assembler code that reads a word of data stored in a specified address(PROGMEM area).

Source Code

The __LPM_word_enhanced() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:mmio_byte?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:mmio_byte</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:mmio_byte?rev=1482675312&amp;do=diff</link>
        <description>_MMIO_BYTE()

Abstract

The _MMIO_BYTE() is a macro that returns a byte of data at the specified address.

Source Code

The _MMIO_BYTE() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:mmio_word?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:mmio_word</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:mmio_word?rev=1482675312&amp;do=diff</link>
        <description>_MMIO_WORD()

Abstract

The _MMIO_WORD() is a macro that returns two bytes of data at the specified address.

Source Code

The _MMIO_WORD() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _MMIO_WORD(mem_addr) (*(volatile uint16_t *)(mem_addr))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:ocrnx?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:ocrnx</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:ocrnx?rev=1482675312&amp;do=diff</link>
        <description>Output Compare Register

Abstract

The output compare registers are registers to set the duty ratio for PWM output.

Source Code

The output compare registers are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define OCR0A _SFR_IO8(0x27)
#define OCR0B _SFR_IO8(0x28)
#define OCR1A _SFR_MEM16(0x88)
#define OCR1B _SFR_MEM16(0x8A)
#define OCR2A _SFR_MEM8(0xB3)
#define OCR2B _SFR_MEM8(0xB4)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:pgm_read_byte?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:pgm_read_byte</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:pgm_read_byte?rev=1482675312&amp;do=diff</link>
        <description>pgm_read_byte()

Abstract

The pgm_read_byte() is a macro that reads a byte of data stored in a specified address(PROGMEM area).

Source Code

The pgm_read_byte() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.

#define pgm_read_byte(address_short)    pgm_read_byte_near(address_short)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:pgm_read_byte_near?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:pgm_read_byte_near</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:pgm_read_byte_near?rev=1482675312&amp;do=diff</link>
        <description>pgm_read_byte_near()

Abstract

The pgm_read_byte_near() is a macro that reads a byte of data stored in a specified address(PROGMEM area).

Source Code

The pgm_read_byte_near() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.

#define pgm_read_byte_near(address_short) __LPM((uint16_t)(address_short))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:pgm_read_word?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:pgm_read_word</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:pgm_read_word?rev=1482675312&amp;do=diff</link>
        <description>pgm_read_word()

Abstract

The pgm_read_byte() is a macro that read a word of data stored in a specified address(PROGMEM area).

Source Code

The pgm_read_word() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.

#define pgm_read_word(address_short)    pgm_read_word_near(address_short)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:pgm_read_word_near?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:pgm_read_word_near</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:pgm_read_word_near?rev=1482675312&amp;do=diff</link>
        <description>pgm_read_byte_near()

Abstract

The pgm_read_byte_near() is a macro that reads a byte of data stored in a specified address(PROGMEM area).

Source Code

The pgm_read_byte_near() is defined in hardware/tools/avr/avr/include/avr/pgmspace.h as below.

#define pgm_read_byte_near(address_short) __LPM((uint16_t)(address_short))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:portxn?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:portxn</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:portxn?rev=1482675312&amp;do=diff</link>
        <description>PORT

Abstract

The PORTs are registers for bi-directional I/O. There are three registers called PORTB, PORTC and PORTD.

Source Code

The PORTB, PORTC and PORTD are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define PORTB _SFR_IO8(0x05)
#define PORTC _SFR_IO8(0x08)
#define PORTD _SFR_IO8(0x0B)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sei?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:sei</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sei?rev=1482675312&amp;do=diff</link>
        <description>sei()

Abstract

The sei() is a macro that executes an assembler instruction to enable interrupts.

Source Code

The sei() is defined in hardware/tools/avr/avr/include/avr/interrupt.h as below.


# define sei()  __asm__ __volatile__ (&quot;sei&quot; ::)


The sei is an assembler instruction to disable interrputs.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_addr?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:sfr_addr</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_addr?rev=1482675312&amp;do=diff</link>
        <description>_SFR_ADDR()

Abstract

The _SFR_ADDR() is a macro that returns the address of the argument.

Source Code

The _SFR_ADDR() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _SFR_ADDR(sfr) _SFR_MEM_ADDR(sfr)

It calls _SFR_MEM_ADDR().</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_byte?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:sfr_byte</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_byte?rev=1482675312&amp;do=diff</link>
        <description>_SFR_BYTE()

Abstract

The _SFR_BYTE() is a macro that returns a byte of data of the specified address.

Source Code

The _SFR_BYTE() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _SFR_BYTE(sfr) _MMIO_BYTE(_SFR_ADDR(sfr))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_io8?rev=1482675312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:12+08:00</dc:date>
        <title>arduino:avrgcc:sfr_io8</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_io8?rev=1482675312&amp;do=diff</link>
        <description>_SFR_IO8()

Abstract

The _SFR_IO8() converts the I/O address to the memory address. It is a macro that returns a byte of data at an address of io_addr + __SFR_OFFSET.

Source Code

The _SFR_IO8() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_mem8?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:sfr_mem8</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_mem8?rev=1482675314&amp;do=diff</link>
        <description>_SFR_MEM8()

Abstract

The _SFR_MEM8() is a macro to return a byte of data of the specified address.

Source Code

The _SFR_MEM8() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _SFR_MEM8(mem_addr) _MMIO_BYTE(mem_addr)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_mem16?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:sfr_mem16</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_mem16?rev=1482675314&amp;do=diff</link>
        <description>_SFR_MEM16()

Abstract

The _SFR_MEM16() is a macro to return two bytes of data of the specified address.

Source Code

The _SFR_MEM16() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _SFR_MEM16(mem_addr) _MMIO_WORD(mem_addr)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_mem_addr?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:sfr_mem_addr</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_mem_addr?rev=1482675314&amp;do=diff</link>
        <description>_SFR_MEM_ADDR()

Abstract

The _SFR_MEM_ADDR() is a macro that returns the address of the argument.

Source Code

The _SFR_MEM_ADDR() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _SFR_MEM_ADDR(sfr) ((uint16_t) &amp;(sfr))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sfr_word?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:sfr_word</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sfr_word?rev=1482675314&amp;do=diff</link>
        <description>_SFR_WORD()

Abstract

The _SFR_WORD() is a macro that returns two bytes of data of the specified address.

Source Code

The _SFR_WORD() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _SFR_WORD(sfr) _MMIO_WORD(_SFR_ADDR(sfr))</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:signal?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:signal</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:signal?rev=1482675314&amp;do=diff</link>
        <description>SIGNAL()

Abstract

The SIGNAL() is a macro to define a function to register to interrupt vectors.

ソースコード

The SIGNAL() is defined in hardware/tools/avr/avr/include/avr/interrupt.h as below.


#  define __INTR_ATTRS used, externally_visible

#  define SIGNAL(vector)                                        \
    extern &quot;C&quot; void vector(void) __attribute__ ((signal, __INTR_ATTRS));        \
    void vector (void)</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:sreg?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:sreg</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:sreg?rev=1482675314&amp;do=diff</link>
        <description>SREG

Abstract

The SREG is a status register of ATmega328P.

Source Code

The SREG is defined in hardware/tools/avr/avr/include/avr/common.h as below.

#define SREG _SFR_IO8(0x3F)

0x3F is an I/O address of SREG. They call _SFR_IO8().

The status register is a 8bit register. The meanings of each bit are shown below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:tccrnx?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:tccrnx</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:tccrnx?rev=1482675314&amp;do=diff</link>
        <description>Timer/Counter Control Register

Abstract

The Timer/Counter Control Registers are registers to control timers and counters.

Source Code

Timer/Counter Control Registers are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define TCCR0A _SFR_IO8(0x24)
#define WGM00 0
#define WGM01 1
#define COM0B0 4
#define COM0B1 5
#define COM0A0 6
#define COM0A1 7

#define TCCR0B _SFR_IO8(0x25)
#define CS00 0
#define CS01 1
#define CS02 2
#define WGM02 3
#define FOC0B 6
#define FOC0A 7

#de…</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:tcntn?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:tcntn</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:tcntn?rev=1482675314&amp;do=diff</link>
        <description>Timer/Counter Register

Abstract

The Timer/Counter Registers are registers incremented by each timer clock.

Source Code

The Timer/Counter registers related codes are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define TCNT0 _SFR_IO8(0x26)
#define TCNT0_0 0
#define TCNT0_1 1
#define TCNT0_2 2
#define TCNT0_3 3
#define TCNT0_4 4
#define TCNT0_5 5
#define TCNT0_6 6
#define TCNT0_7 7

#define TCNT1 _SFR_MEM16(0x84)

#define TCNT1L _SFR_MEM8(0x84)
#define TCNT1L0 0
#define …</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:tifrn?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:tifrn</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:tifrn?rev=1482675314&amp;do=diff</link>
        <description>Timer/Counter Interrupt Flag Register

Abstract

The Timer/Counter Interrupt Flag Registers are registers to control timer interruption.

Source Code

The Timer/Counter Interrupt Flag Registers related codes are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:timskn?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:timskn</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:timskn?rev=1482675314&amp;do=diff</link>
        <description>Timer/Counter Interrupt Mask Register

Abstract

The Timer/Counter Interrupt Mask Registers are registers related to timer interruption.

Source Code

The Timer/Counter Interrupt Mask Register related codes are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:usart0?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:usart0</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:usart0?rev=1482675314&amp;do=diff</link>
        <description>USART0

Abstract

USART0（Universal Synchronous and Asynchronous serial Receiver and Transmitter) related registers.

Source Code

The USART0 related codes are defined in hardware/tools/avr/avr/include/avr/iom328p.h as below.


#define UCSR0A _SFR_MEM8(0xC0)
#define MPCM0 0
#define U2X0 1
#define UPE0 2
#define DOR0 3
#define FE0 4
#define UDRE0 5
#define TXC0 6
#define RXC0 7

#define UCSR0B _SFR_MEM8(0xC1)
#define TXB80 0
#define RXB80 1
#define UCSZ02 2
#define TXEN0 3
#define RXEN0 4
#define …</description>
    </item>
    <item rdf:about="https://wiki.nxez.com/arduino:avrgcc:vector?rev=1482675314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T22:15:14+08:00</dc:date>
        <title>arduino:avrgcc:vector</title>
        <link>https://wiki.nxez.com/arduino:avrgcc:vector?rev=1482675314&amp;do=diff</link>
        <description>_VECTOR()

Abstract

The _VECTOR() is a macro to convert an interrupt vector number to a real address.

Source Code

The _VECTOR() is defined in hardware/tools/avr/avr/include/avr/sfr_defs.h as below.

#define _VECTOR(N) __vector_ ## N

For example, if the N is 7, it is converted to __vector_7.</description>
    </item>
</rdf:RDF>
