Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> .h файл для Tiny26, где взять? 
:(
    Опции темы
Гость_Deus
Дата 20.12.2004, 11:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











нужно написать программу на си в среде IAR, для контроллера ATtiny26
но в составе почемуто нет файла iotiny26.h (по аналогии с например iotiny28.h или io8535.h)
smile
  Вверх
PILOT
Дата 20.12.2004, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Код

/****************************************************************************
**             - iotiny26.h -
**
**     This file declares the internal register addresses for ATtiny26.
**
**     Used with iccAVR and aAVR.
**
**     Copyright IAR Systems 2002. All rights reserved.
**
**     File version: $Revision: 1.3 $
**
***************************************************************************/

#include "iomacro.h"

#if TID_GUARD(0)
#error This file should only be compiled with iccavr or aavr whith processor option -v0
#endif /* TID_GUARD(0) */

/* Include the SFR part if this file has not been included before,
* OR this file is included by the assembler (SFRs must be defined in
* each assembler module). */
#if !defined(__IOTINY26_H) || defined(__IAR_SYSTEMS_ASM__)

#pragma language=extended

/*==========================*/
/* Predefined SFR Addresses */
/*==========================*/

/****************************************************************************
* An example showing the SFR_B() macro call,
* the expanded result and usage of this result:
*
* SFR_B(AVR,   0x1F) Expands to:
* __io union {
*             unsigned char AVR;                 // The sfrb as 1 byte
*             struct {                           // The sfrb as 8 bits
*                     unsigned char AVR_Bit0:1,
*                                   AVR_Bit1:1,
*                                   AVR_Bit2:1,
*                                   AVR_Bit3:1,
*                                   AVR_Bit4:1,
*                                   AVR_Bit5:1,
*                                   AVR_Bit6:1,
*                                   AVR_Bit7:1;
*                    };
*            } @ 0x1F;
* Examples of how to use the expanded result:
* AVR |= (1<<5);
* or like this:
* AVR_Bit5 = 1;
***************************************************************************/

SFR_W(ADC,    0x04) /* ADC Data Register */
SFR_B(ADCSR,  0x06) /* ADC Control and Status Register */
SFR_B(ADMUX,  0x07) /* ADC Multiplexer Select Register */
SFR_B(ACSR,   0x08) /* Analog Comparator Control and Status Register */
SFR_B(USICR,  0x0D) /* Universal Serial Interface Control Register */
SFR_B(USISR,  0x0E) /* Universal Serial Interface Status Register */
SFR_B(USIDR,  0x0F) /* Universal Serial Interface Data Register */
SFR_B(PINB,   0x16) /* Input Pins, Port B */
SFR_B(DDRB,   0x17) /* Data Direction Register, Port B */
SFR_B(PORTB,  0x18) /* Data Register, Port B */
SFR_B(PINA,   0x19) /* Input Pins, Port A */
SFR_B(DDRA,   0x1A) /* Data Direction Register, Port A */
SFR_B(PORTA,  0x1B) /* Data Register, Port A */
SFR_B(EECR,   0x1C) /* EEPROM Control Register */
SFR_B(EEDR,   0x1D) /* EEPROM Data Register */
SFR_B(EEAR,   0x1E) /* EEPROM Address Register */
SFR_B(WDTCR,  0x21) /* Watchdog Timer Control Register */
SFR_B(PLLCSR, 0x29) /* PLL Control and Status Register */
SFR_B(OCR1C,  0x2B) /* Timer/Counter1 Output Compare Register C */
SFR_B(OCR1B,  0x2C) /* Timer/Counter1 Output Compare Register B */
SFR_B(OCR1A,  0x2D) /* Timer/Counter1 Output Compare Register A */
SFR_B(TCNT1,  0x2E) /* Timer/Counter1 */
SFR_B(TCCR1B, 0x2F) /* Timer/Counter1 Control Register B */
SFR_B(TCCR1A, 0x30) /* Timer/Counter1 Control Register A */
SFR_B(OSCCAL, 0x31) /* Oscillator Calibration Register */
SFR_B(TCNT0,  0x32) /* Timer/Counter0 */
SFR_B(TCCR0,  0x33) /* Timer/Counter0 Control Register */
SFR_B(MCUSR,  0x34) /* MCU Status Register */
SFR_B(MCUCR,  0x35) /* MCU Control Register */
SFR_B(TIFR,   0x38) /* Timer/Counter Interrupt Flag Register */
SFR_B(TIMSK,  0x39) /* Timer/Counter Interrupt Mask Register */
SFR_B(GIFR,   0x3A) /* General Interrupt Flag Register */
SFR_B(GIMSK,  0x3B) /* General Interrupt Mask Register */
SFR_B(SP,     0x3D) /* Stack Pointer */
SFR_B(SREG,   0x3F) /* Status Register */

#ifndef __IOTINY26_H
#define __IOTINY26_H

/* SFRs are local in assembler modules (so this file may need to be */
/* included in more than one module in the same source file), */
/* but #defines must only be made once per source file. */

/*==============================*/
/* Interrupt Vector Definitions */
/*==============================*/

/* NB! vectors are specified as byte addresses */

#define RESET_vect        (0x00)
#define INT0_vect         (0x02)
#define IO_PINS_vect      (0x04)
#define TIMER1_CMPA_vect  (0x06)
#define TIMER1_CMPB_vect  (0x08)
#define TIMER1_OVF1_vect  (0x0A)
#define TIMER0_OVF0_vect  (0x0C)
#define USI_STRT_vect     (0x0E)
#define USI_OVF_vect      (0x10)
#define EE_RDY_vect       (0x12)
#define ANA_COMP_vect     (0x14)
#define ADC_vect          (0x16)


#ifdef __IAR_SYSTEMS_ASM__  
#ifndef ENABLE_BIT_DEFINITIONS
#define  ENABLE_BIT_DEFINITIONS
#endif /* ENABLE_BIT_DEFINITIONS */
#endif /* __IAR_SYSTEMS_ASM__ */

#ifdef ENABLE_BIT_DEFINITIONS

/* Bit definitions for use with the IAR Assembler  
  The Register Bit names are represented by their bit number (0-7). */    

/* ADC Control and Status Register - ADCSR */  
#define    ADEN     7
#define    ADSC     6
#define    ADFR     5
#define    ADIF     4
#define    ADIE     3
#define    ADPS2    2
#define    ADPS1    1
#define    ADPS0    0

/* ADC Multiplexer Selection Register - ADMUX */  
#define    REFS1    7
#define    REFS0    6
#define    ADLAR    5
#define    MUX4     4
#define    MUX3     3
#define    MUX2     2
#define    MUX1     1
#define    MUX0     0

/* Analog Comparator Control And Status Register - ACSR */  
#define    ACD      7
#define    ACBG     6
#define    ACO      5
#define    ACI      4
#define    ACIE     3
#define    ACME     2
#define    ACIS1    1
#define    ACIS0    0

/* USI Control Register - USICR */  
#define    USISIE   7
#define    USIOIE   6
#define    USIWM1   5
#define    USIWM0   4
#define    USICS1   3
#define    USICS0   2
#define    USICLK   1
#define    USITC    0

/* USI Status Register - USISR */  
#define    USISIF   7
#define    USIOIF   6
#define    USIPF    5
#define    USIDC    4
#define    USICNT3  3
#define    USICNT2  2
#define    USICNT1  1
#define    USICNT0  0

/* Port B Input Pins Address - PINB */
#define    PINB7    7
#define    PINB6    6
#define    PINB5    5
#define    PINB4    4
#define    PINB3    3
#define    PINB2    2
#define    PINB1    1
#define    PINB0    0

/* Port B Data Direction Register - DDRB */
#define    DDB7     7
#define    DDB6     6
#define    DDB5     5
#define    DDB4     4
#define    DDB3     3
#define    DDB2     2
#define    DDB1     1
#define    DDB0     0

/* Port B Data Register - PORTB */
#define    PB7      7
#define    PB6      6
#define    PB5      5
#define    PB4      4
#define    PB3      3
#define    PB2      2
#define    PB1      1
#define    PB0      0

/* Port B Data Register - PORTB */
#define    PORTB7   7
#define    PORTB6   6
#define    PORTB5   5
#define    PORTB4   4
#define    PORTB3   3
#define    PORTB2   2
#define    PORTB1   1
#define    PORTB0   0

/* Port A Input Pins Address - PINA */
#define    PINA7    7
#define    PINA6    6
#define    PINA5    5
#define    PINA4    4
#define    PINA3    3
#define    PINA2    2
#define    PINA1    1
#define    PINA0    0

/* Port A Data Direction Register - DDRA */
#define    DDA7     7
#define    DDA6     6
#define    DDA5     5
#define    DDA4     4
#define    DDA3     3
#define    DDA2     2
#define    DDA1     1
#define    DDA0     0

/* Port A Data Register - PORTA */
#define    PA7      7
#define    PA6      6
#define    PA5      5
#define    PA4      4
#define    PA3      3
#define    PA2      2
#define    PA1      1
#define    PA0      0

/* Port A Data Register - PORTA */
#define    PORTA7   7
#define    PORTA6   6
#define    PORTA5   5
#define    PORTA4   4
#define    PORTA3   3
#define    PORTA2   2
#define    PORTA1   1
#define    PORTA0   0

/* EEPROM Control Register - EECR */
#define    EERIE    3
#define    EEMWE    2
#define    EEWE     1
#define    EERE     0

/* EEPROM Address Register - EEAR */
#define    EEAR6    6
#define    EEAR5    5
#define    EEAR4    4
#define    EEAR3    3
#define    EEAR2    2
#define    EEAR1    1
#define    EEAR0    0

/* Watchdog Timer Control Register - WDTCR */
#define    WDCE     4
#define    WDE      3
#define    WDP2     2
#define    WDP1     1
#define    WDP0     0

/* PLL Control and Status Register - PLLCSR */
#define    PCKE     2
#define    PLLE     1
#define    PLOCK    0

/* Timer/Counter1 Control Register B - TCCR1B */
#define    CTC1     7
#define    PSR1     6
#define    CS13     3
#define    CS12     2
#define    CS11     1
#define    CS10     0

/* Timer/Counter1 Control Register A - TCCR1A */
#define    COM1A1   7
#define    COM1A0   6
#define    COM1B1   5
#define    COM1B0   4
#define    FOC1A    3
#define    FOC1B    2
#define    PWM1A    1
#define    PWM1B    0

/* Timer/Counter0 Control Register - TCCR0 */
#define    PSR0     3
#define    CS02     2
#define    CS01     1
#define    CS00     0

/* MCU Status Register - MCUSR */
#define    WDRF     3
#define    BORF     2
#define    EXTRF    1
#define    PORF     0

/* MCU Control Register - MCUCR */
#define    PUD      6
#define    SE       5
#define    SM1      4
#define    SM0      3
#define    ISC01    1
#define    ISC00    0

/* Timer/Counter Interrupt Flag Register - TIFR */                  
#define    OCF1A    6
#define    OCF1B    5
#define    TOV1     2
#define    TOV0     1

/* Timer/Counter Interrupt Mask register - TIMSK */                
#define    OCIE1A   6
#define    OCIE1B   5
#define    TOIE1    2
#define    TOIE0    1

/* General Interrupt Flag Register - GIFR */
#define    INTF0    6
#define    PCIF     5

/* General Interrupt Mask register - GIMSK */
#define    INT0     6
#define    PCIE1    5
#define    PCIE0    4

/* Stack Pointer - SP */
#define    SP7      7
#define    SP6      6
#define    SP5      5
#define    SP4      4
#define    SP3      3
#define    SP2      2
#define    SP1      1
#define    SP0      0

/* Pointer definition   */
#define    XL     R26
#define    XH     R27
#define    YL     R28
#define    YH     R29
#define    ZL     R30
#define    ZH     R31
     
/* Contants */
#define    RAMEND    0xDF    /* Last On-Chip SRAM Location */
#define    XRAMEND   0xDF
#define    E2END     0x7F
#define    FLASHEND  0x07FF

#endif /* ENABLE_BIT_DEFINITIONS */
#endif /* __IOTINY26_H (define part) */

#pragma language=default

#endif /* __IOTINY26_H (SFR part) */


СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Гость_Deus
Дата 21.12.2004, 05:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Cпасибо
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0964 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.