8272|2

535

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

关于头文件的问题 [复制链接]

最近我在学习launchpad,但是今天在看第一个例程的时候就遇到不懂得地方了
  1. #include "io430.h"

    int main( void )
    {
    // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;

    P1DIR |= 0x01; // Set P1.0 to output direction
    while(1)
    {
    volatile unsigned int i;
    P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
    i = 50000; // Delay
    while (i--);
    }
    }
复制代码

这个就是一个最简单的程序,我想不通的就是这个程序的第一句关于头文件包含的
#include "io430.h"

  1. /********************************************************************
    *
    * This file is a generic include file controlled by
    * compiler/assembler IDE generated defines
    *
    * Copyright 1996-2011 IAR Systems AB.
    * $Revision: 7618 $
    *
    ********************************************************************/

    /********************************************************************
    * msp430x1xx family
    ********************************************************************/
    #ifndef __io430
    #define __io430


    #ifndef _SYSTEM_BUILD
    #pragma system_include
    #endif

    #if defined (__MSP430C111__) || defined (__MSP430C112__) || defined (__MSP430E112__) || defined (__MSP430F110__) || defined (__MSP430F112__) || defined (__MSP430P112__)
    #include "io430x11x.h"

    #elif defined (__MSP430F122__) || defined (__MSP430F123__)
    #include "io430x12x.h"

    #elif defined (__MSP430C1111__) || defined (__MSP430C1121__) || defined (__MSP430F1101__) || defined (__MSP430F1101A__) || defined (__MSP430F1111__) || defined (__MSP430F1111A__) || defined (__MSP430F1121__) || defined (__MSP430F1121A__)
    #include "io430x11x1.h"

    #elif defined (__MSP430F1122__) || defined (__MSP430F1132__)
    #include "io430x11x2.h"

    #elif defined (__MSP430F1222__) || defined (__MSP430F1232__)
    #include "io430x12x2.h"

    #elif defined (__MSP430C1331__) || defined (__MSP430C1351__)
    #include "io430x13x1.h"

    #elif defined (__MSP430F133__) || defined (__MSP430F135__)
    #include "io430x13x.h"

    #elif defined (__MSP430F1471__) || defined (__MSP430F1481__) || defined (__MSP430F1491__)
    #include "io430x14x1.h"

    #elif defined (__MSP430F147__) || defined (__MSP430F148__) || defined(__MSP430F149__)
    #include "io430x14x.h"

    #elif defined (__MSP430F155__) || defined (__MSP430F156__) || defined(__MSP430F157__)
    #include "io430x15x.h"

    #elif defined (__MSP430F1610__) || defined (__MSP430F1611__) || defined (__MSP430F1612__) || defined (__MSP430F167__) || defined (__MSP430F168__) || defined(__MSP430F169__)
    #include "io430x16x.h"


    /********************************************************************
    * msp430x2xx family
    ********************************************************************/
    #elif defined (__MSP430F2001__) || defined (__MSP430F2011__)
    #include "io430x20x1.h"

    #elif defined (__MSP430F2002__) || defined (__MSP430F2012__)
    #include "io430x20x2.h"

    #elif defined (__MSP430F2003__) || defined (__MSP430F2013__)
    #include "io430x20x3.h"

    #elif defined (__MSP430F2101__) || defined (__MSP430F2111__) || defined (__MSP430F2121__) || defined (__MSP430F2131__)
    #include "io430x21x1.h"

    #elif defined (__MSP430F2112__) || defined (__MSP430F2122__) || defined (__MSP430F2132__)
    #include "io430x21x2.h"

    #elif defined (__MSP430F2232__) || defined (__MSP430F2252__) || defined (__MSP430F2272__)
    #include "io430x22x2.h"

    #elif defined (__MSP430F2234__) || defined (__MSP430F2254__) || defined (__MSP430F2274__)
    #include "io430x22x4.h"

    #elif defined (__MSP430F233__) || defined (__MSP430F235__)
    #include "io430x23x.h"

    #elif defined (__MSP430F2330__) || defined (__MSP430F2350__) || defined (__MSP430F2370__)
    #include "io430x23x0.h"

    #elif defined (__MSP430F249__) || defined (__MSP430F248__) || defined (__MSP430F247__) || defined (__MSP430F2410__)
    #include "io430x24x.h"

    #elif defined (__MSP430F2416__) || defined (__MSP430F2417__) || defined (__MSP430F2418__) || defined (__MSP430F2419__)
    #include "io430x241x.h"

    #elif defined (__MSP430F2471__) || defined (__MSP430F2481__) || defined (__MSP430F2491__)
    #include "io430x24x1.h"

    #elif defined (__MSP430F2616__) || defined (__MSP430F2617__) || defined (__MSP430F2618__) || defined (__MSP430F2619__)
    #include "io430x26x.h"


    /********************************************************************
    * msp430x3xx family
    ********************************************************************/
    #elif defined (__MSP430C311S__) || defined (__MSP430C312__) || defined (__MSP430C313__) || defined (__MSP430C314__) || defined (__MSP430C315__) || defined (__MSP430E313__) || defined (__MSP430E315__) || defined (__MSP430P313__) || defined (__MSP430P315__) || defined (__MSP430P315S__)
    #include "io430x31x.h"

    #elif defined (__MSP430C323__) || defined (__MSP430C325__) || defined (__MSP430E325__) || defined (__MSP430P325__)
    #include "io430x32x.h"

    #elif defined (__MSP430C336__) || defined (__MSP430C337__) || defined (__MSP430E337__) || defined (__MSP430P337__)
    #include "io430x33x.h"


    /********************************************************************
    * msp430x4xx family
    ********************************************************************/
    #elif defined (__MSP430C412__) || defined (__MSP430C413__)
    #include "io430x41x.h"

    #elif defined(__MSP430F412__) || defined(__MSP430F413__)
    #include "io430x41x.h"

    #elif defined (__MSP430F415__)
    #include "io430x415.h"

    #elif defined (__MSP430F417__)
    #include "io430x417.h"

    #elif defined (__MSP430F4132__) || defined (__MSP430F4152__)
    #include "io430x41x2.h"

    #elif defined (__MSP430F4250__) || defined (__MSP430F4260__) || defined(__MSP430F4270__)
    #include "io430x42x0.h"

    #elif defined (__MSP430F423__) || defined (__MSP430F425__) || defined(__MSP430F427__) || defined (__MSP430F423A__) || defined (__MSP430F425A__) || defined (__MSP430F427A__)
    #include "io430x42x.h"

    #elif defined (__MSP430FW428__)
    #include "io430fw428.h"

    #elif defined (__MSP430FW429__)
    #include "io430fw429.h"

    #elif defined (__MSP430FE423__) || defined (__MSP430FE425__) || defined(__MSP430FE427__)
    #include "io430xE42x.h"

    #elif defined (__MSP430FE423A__) || defined (__MSP430FE425A__) || defined(__MSP430FE427A__)
    #include "io430xE42xa.h"

    #elif defined (__MSP430FG4250__) || defined (__MSP430FG4260__) || defined(__MSP430FG4270__)
    #include "io430xG42x0.h"

    #elif defined (__MSP430FW423__) || defined (__MSP430FW425__) || defined(__MSP430FW427__)
    #include "io430xW42x.h"

    #elif defined (__MSP430F435__) || defined (__MSP430F436__) || defined(__MSP430F437__)
    #include "io430x43x.h"

    #elif defined (__MSP430F438__)
    #include "io430f438.h"

    #elif defined (__MSP430F439__)
    #include "io430f439.h"

    #elif defined (__MSP430F4351__) || defined (__MSP430F4361__) || defined(__MSP430F4371__)
    #include "io430x43x1.h"

    #elif defined (__MSP430FG437__) || defined (__MSP430FG438__) || defined(__MSP430FG439__)
    #include "io430xG43x.h"

    #elif defined (__MSP430F447__) || defined (__MSP430F448__) || defined(__MSP430F449__)
    #include "io430x44x.h"

    #elif defined (__MSP430FE4232__) || defined (__MSP430FE4242__) || defined (__MSP430FE4252__) || defined (__MSP430FE4272__)
    #include "io430xE42x2.h"

    #elif defined (__MSP430FG4616__) || defined (__MSP430FG4617__) || defined(__MSP430FG4618__) || defined(__MSP430FG4619__) || defined (__MSP430CG4619__)
    #include "io430xG46x.h"

    #elif defined (__MSP430CG4616__)
    #include "io430cG4616.h"

    #elif defined (__MSP430CG4617__)
    #include "io430cG4617.h"

    #elif defined (__MSP430CG4618__)
    #include "io430cG4618.h"

    #elif defined (__MSP430F477__) || defined (__MSP430F478__) || defined (__MSP430F479__)
    #include "io430x47x.h"

    #elif defined (__MSP430FG477__) || defined (__MSP430FG478__) || defined (__MSP430FG479__)
    #include "io430xG47x.h"

    #elif defined (__MSP430F4783__) || defined (__MSP430F4793__)
    #include "io430x47x3.h"

    #elif defined (__MSP430F4784__) || defined (__MSP430F4794__)
    #include "io430x47x4.h"

    #elif defined (__MSP430F47166__) || defined (__MSP430F47176__) || defined (__MSP430F47186__) || defined (__MSP430F47196__)
    #include "io430x471x6.h"

    #elif defined (__MSP430F47167__) || defined (__MSP430F47177__) || defined (__MSP430F47187__) || defined (__MSP430F47197__)
    #include "io430x471x7.h"

    #elif defined (__MSP430F4481__)
    #include "io430F4481.h"

    #elif defined (__MSP430F4491__)
    #include "io430F4491.h"

    #elif defined (__MSP430F47126__)
    #include "io430F47126.h"

    #elif defined (__MSP430F47127__)
    #include "io430F47127.h"

    #elif defined (__MSP430F47163__)
    #include "io430F47163.h"

    #elif defined (__MSP430F47173__)
    #include "io430F47173.h"

    #elif defined (__MSP430F47183__)
    #include "io430F47183.h"

    #elif defined (__MSP430F47193__)
    #include "io430F47193.h"

    #elif defined (__MSP430F46161__)
    #include "io430F46161.h"

    #elif defined (__MSP430F46171__)
    #include "io430F46171.h"

    #elif defined (__MSP430F46181__)
    #include "io430F46181.h"

    #elif defined (__MSP430F46191__)
    #include "io430F46191.h"

    #elif defined (__MSP430F4616__)
    #include "io430F4616.h"

    #elif defined (__MSP430F4617__)
    #include "io430F4617.h"

    #elif defined (__MSP430F4618__)
    #include "io430F4618.h"

    #elif defined (__MSP430F4619__)
    #include "io430F4619.h"


    /********************************************************************
    * msp430x5xx family
    ********************************************************************/
    #elif defined (__MSP430F5131__)
    #include "io430F5131.h"

    #elif defined (__MSP430F5151__)
    #include "io430F5151.h"

    #elif defined (__MSP430F5171__)
    #include "io430F5171.h"

    #elif defined (__MSP430F5132__)
    #include "io430F5132.h"

    #elif defined (__MSP430F5152__)
    #include "io430F5152.h"

    #elif defined (__MSP430F5172__)
    #include "io430F5172.h"

    #elif defined (__MSP430FR5720__)
    #include "io430fr5720.h"

    #elif defined (__MSP430FR5725__)
    #include "io430fr5725.h"

    #elif defined (__MSP430FR5728__)
    #include "io430fr5728.h"

    #elif defined (__MSP430FR5729__)
    #include "io430fr5729.h"

    #elif defined (__MSP430FR5730__)
    #include "io430fr5730.h"

    #elif defined (__MSP430FR5735__)
    #include "io430fr5735.h"

    #elif defined (__MSP430FR5738__)
    #include "io430fr5738.h"

    #elif defined (__MSP430FR5739__)
    #include "io430fr5739.h"

    #elif defined (__MSP430F5340__)
    #include "io430f5340.h"

    #elif defined (__MSP430F5341__)
    #include "io430f5341.h"

    #elif defined (__MSP430F5342__)
    #include "io430f5342.h"

    #elif defined (__MSP430F5324__)
    #include "io430f5324.h"

    #elif defined (__MSP430F5325__)
    #include "io430f5325.h"

    #elif defined (__MSP430F5326__)
    #include "io430f5326.h"

    #elif defined (__MSP430F5327__)
    #include "io430f5327.h"

    #elif defined (__MSP430F5328__)
    #include "io430f5328.h"

    #elif defined (__MSP430F5329__)
    #include "io430f5329.h"


    #elif defined (__XMS430F5438__) || defined (__MSP430F5419__) || defined (__MSP430F5436__) || defined (__MSP430F5438__)

    #include "io430x54x.h"

    #elif defined (__MSP430F5435__)

    #include "io430f5435.h"

    #elif defined (__MSP430F5437__)

    #include "io430f5437.h"

    #elif defined (__MSP430F5435A__)

    #include "io430f5435A.h"

    #elif defined (__MSP430F5437A__)

    #include "io430f5437A.h"


    #elif defined (__MSP430F5418__)

    #include "io430f5418.h"

    #elif defined (__MSP430F5418A__)

    #include "io430f5418A.h"




    #elif defined (__MSP430F5419A__) || defined (__MSP430F5436A__) || defined (__MSP430F5438A__)
    #include "io430x54xA.h"

    #elif defined (__MSP430F5510__)
    #include "io430F5510.h"

    #elif defined (__CC430F5133__) || defined (__CC430F5135__) || defined (__CC430F5137__)
    #include "iocc430x513x.h"

    #elif defined (__MSP430F5513__) || defined (__MSP430F5514__) || defined (__MSP430F5515__) || defined (__MSP430F5517__) || defined (__MSP430F5519__)
    #include "io430x551x.h"


    #elif defined (__MSP430F5304__)
    #include "io430f5304.h"

    #elif defined (__MSP430F5308__)
    #include "io430f5308.h"

    #elif defined (__MSP430F5309__)
    #include "io430f5309.h"

    #elif defined (__MSP430F5310__)
    #include "io430f5310.h"

    #elif defined (__MSP430F5500__)
    #include "io430f5500.h"

    #elif defined (__MSP430F5501__)
    #include "io430f5501.h"

    #elif defined (__MSP430F5502__)
    #include "io430f5502.h"

    #elif defined (__MSP430F5503__)
    #include "io430f5503.h"

    #elif defined (__MSP430F5504__)
    #include "io430f5504.h"

    #elif defined (__MSP430F5505__)
    #include "io430f5505.h"

    #elif defined (__MSP430F5506__)
    #include "io430f5506.h"

    #elif defined (__MSP430F5507__)
    #include "io430f5507.h"

    #elif defined (__MSP430F5508__)
    #include "io430f5508.h"

    #elif defined (__MSP430F5509__)
    #include "io430f5509.h"



    #elif defined (__MSP430F5630__)
    #include "io430f5630.h"

    #elif defined (__MSP430F5631__)
    #include "io430f5631.h"

    #elif defined (__MSP430F5632__)
    #include "io430f5632.h"

    #elif defined (__MSP430F5633__)
    #include "io430f5633.h"

    #elif defined (__MSP430F5634__)
    #include "io430f5634.h"

    #elif defined (__MSP430F5635__)
    #include "io430f5635.h"

    #elif defined (__MSP430F5636__)
    #include "io430f5636.h"

    #elif defined (__MSP430F5637__)
    #include "io430f5637.h"

    #elif defined (__MSP430F5638__)
    #include "io430f5638.h"

    #elif defined (__MSP430F6630__)
    #include "io430f6630.h"

    #elif defined (__MSP430F6631__)
    #include "io430f6631.h"

    #elif defined (__MSP430F6632__)
    #include "io430f6632.h"

    #elif defined (__MSP430F6633__)
    #include "io430f6633.h"

    #elif defined (__MSP430F6634__)
    #include "io430f6634.h"

    #elif defined (__MSP430F6635__)
    #include "io430f6635.h"

    #elif defined (__MSP430F6636__)
    #include "io430f6636.h"

    #elif defined (__MSP430F6637__)
    #include "io430f6637.h"






    #elif defined (__MSP430F5513__)
    #include "io430f5513.h"

    #elif defined (__MSP430F5514__)
    #include "io430f5514.h"

    #elif defined (__MSP430F5521__) || defined (__MSP430F5522__) || defined (__MSP430F5524__) || defined (__MSP430F5525__) || defined (__MSP430F5526__) || defined (__MSP430F5527__) || defined (__MSP430F5528__) || defined (__MSP430F5529__)
    #include "io430x552x.h"

    #elif defined (__CC430F6125__) || defined (__CC430F6126__) || defined (__CC430F6127__)
    #include "iocc430x612x.h"

    #elif defined (__CC430F6135__) || defined (__CC430F6137__)
    #include "iocc430x613x.h"

    #elif defined (__MSP430F6638__)
    #include "io430F6638.h"

    #elif defined (__MSP430G2211__)
    #include "io430G2211.h"

    #elif defined (__MSP430G2201__)
    #include "io430G2201.h"

    #elif defined (__MSP430G2111__)
    #include "io430G2111.h"

    #elif defined (__MSP430G2101__)
    #include "io430G2101.h"

    #elif defined (__MSP430G2001__)
    #include "io430G2001.h"

    #elif defined (__MSP430G2231__)
    #include "io430G2231.h"

    #elif defined (__MSP430G2221__)
    #include "io430G2221.h"

    #elif defined (__MSP430G2131__)
    #include "io430G2131.h"

    #elif defined (__MSP430G2121__)
    #include "io430G2121.h"

    #elif defined (__MSP430G2113__)
    #include "io430g2113.h"

    #elif defined (__MSP430G2213__)
    #include "io430g2213.h"

    #elif defined (__MSP430G2313__)
    #include "io430g2313.h"

    #elif defined (__MSP430G2413__)
    #include "io430g2413.h"

    #elif defined (__MSP430G2513__)
    #include "io430g2513.h"

    #elif defined (__MSP430G2153__)
    #include "io430g2153.h"

    #elif defined (__MSP430G2253__)
    #include "io430g2253.h"

    #elif defined (__MSP430G2353__)
    #include "io430g2353.h"

    #elif defined (__MSP430G2453__)
    #include "io430g2453.h"

    #elif defined (__MSP430G2553__)
    #include "io430g2553.h"

    #elif defined (__MSP430G2203__)
    #include "io430g2203.h"

    #elif defined (__MSP430G2303__)
    #include "io430g2303.h"

    #elif defined (__MSP430G2403__)
    #include "io430g2403.h"

    #elif defined (__MSP430G2233__)
    #include "io430g2233.h"

    #elif defined (__MSP430G2333__)
    #include "io430g2333.h"

    #elif defined (__MSP430G2433__)
    #include "io430g2433.h"

    #elif defined (__MSP430G2533__)
    #include "io430g2533.h"

    #elif defined (__MSP430AFE221__)
    #include "io430afe221.h"

    #elif defined (__MSP430AFE231__)
    #include "io430afe231.h"

    #elif defined (__MSP430AFE251__)
    #include "io430afe251.h"

    #elif defined (__MSP430AFE222__)
    #include "io430afe222.h"

    #elif defined (__MSP430AFE232__)
    #include "io430afe232.h"

    #elif defined (__MSP430AFE252__)
    #include "io430afe252.h"

    #elif defined (__MSP430AFE223__)
    #include "io430afe223.h"

    #elif defined (__MSP430AFE233__)
    #include "io430afe233.h"

    #elif defined (__MSP430AFE253__)
    #include "io430afe253.h"

    #elif defined (__MSP430G2102__)
    #include "io430g2102.h"

    #elif defined (__MSP430G2202__)
    #include "io430g2202.h"

    #elif defined (__MSP430G2302__)
    #include "io430g2302.h"

    #elif defined (__MSP430G2402__)
    #include "io430g2402.h"

    #elif defined (__MSP430G2132__)
    #include "io430g2132.h"

    #elif defined (__MSP430G2232__)
    #include "io430g2232.h"

    #elif defined (__MSP430G2332__)
    #include "io430g2332.h"

    #elif defined (__MSP430G2432__)
    #include "io430g2432.h"

    #elif defined (__MSP430G2112__)
    #include "io430g2112.h"

    #elif defined (__MSP430G2212__)
    #include "io430g2212.h"

    #elif defined (__MSP430G2312__)
    #include "io430g2312.h"

    #elif defined (__MSP430G2412__)
    #include "io430g2412.h"

    #elif defined (__MSP430G2152__)
    #include "io430g2152.h"

    #elif defined (__MSP430G2252__)
    #include "io430g2252.h"

    #elif defined (__MSP430G2352__)
    #include "io430g2352.h"

    #elif defined (__MSP430G2452__)
    #include "io430g2452.h"

    #elif defined (__MSP430BT5190__)
    #include "io430bt5190.h"



    /********************************************************************
    * msp430x0xx family
    ********************************************************************/
    #elif defined (__MSP430L092__)
    #include "io430l092.h"

    #elif defined (__MSP430C091__)
    #include "io430c091.h"

    #elif defined (__MSP430C092__)
    #include "io430c092.h"



    /********************************************************************
    * msp430 generic
    ********************************************************************/
    #elif defined (__MSP430GENERIC__)
    #error "msp430 generic device does not have a default include file"

    #elif defined (__MSP430XGENERIC__)
    #error "msp430X generic device does not have a default include file"


    /********************************************************************
    *
    ********************************************************************/
    #else
    #error "Failed to match a default include file"
    #endif


    #endif /* #ifndef __io430 */
复制代码

我打开了这个.h文件内容如下
我看了下大概的意思就是根据define来调用不同的头文件
比如就拿我们的板子上的芯片来说G2231
他所要用的段代码

  1. #elif defined (__MSP430G2231__)
    #include "io430G2231.h"
复制代码

但是对于这里的的条件怎么触发啊?程序里面没有
 defined (__MSP430G2231__)
难道是软件自动检测的单片机型号,然后再调用的对应的头文件吗?
这里是怎么实现对应的功能的呢?

最新回复

恩啊,不管是IAR还是CCS,建立新工程时候都是要选择相应MCU型号的,然后就自动匹配和调用头文件里具体的与型号对应的部分。  详情 回复 发表于 2012-7-7 00:19
 
点赞 关注

回复
举报

7815

帖子

55

TA的资源

裸片初长成(中级)

沙发
 
应该是 在IAR里选择MCU型号时,自动设置相应宏成那个选项,再去选择对应的头文件的。

stm8里则稍有不同。可以在公共头文件里根据ram尺寸等自行配置。
 
个人签名

强者为尊,弱者,死无葬身之地

 

回复

216

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
恩啊,不管是IAR还是CCS,建立新工程时候都是要选择相应MCU型号的,然后就自动匹配和调用头文件里具体的与型号对应的部分。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 15

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表