수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

헤더파일 또는 라이브러리 추가하는 방법 알려주세요~

사랑

2023.04.01

질문 제목 :헤더파일 또는 라이브러리 추가하는 방법 알려주세요~ 질문 요약 :헤더파일 또는 라이브러리 추가하는 방법 알려주세요~질문 내용 :안녕하세요 태양광에 관심이 있어서 공부하고 있는 전자공 학부 3학년생입니다. 논문에 나와있는 코드를 따라 작성 하려고 하는데 헤더파일에서 넘어가질 않네요아래 코드를 돌렸는데 빨간색 부분에서 오류가 납니다.그래서 Texas Instrument에서 제공하는 파일을 찾아서 링크 시켜줬는데해더파일안에 있는 헤더파일에서 또 막히네요 ㅠ.ㅠ한꺼번에 경로 지정할수 있는 방법이나 인스톨 하는 방법이 있나요??TI에서 제공하는 헤더파일은 파일로 첨부했습니다.msp430x26x.h 안에 들어있는 또 다른 헤더파일은#include iomacros.h입니다.아래 코드도 soucer.c 로 올릴께요~ ㅎ문제 해결 좀 도와주세요 ^^그리고 사진파일은 TI에서 제공한 파일을 다 못 올려서 스샷만 첨부할께요 ^^

/***********************************************************************
* File: main.c
* Author: Leonor Linares
* Created: 05/15/2008
* Changed: 11/21/2008
* Notes: The files in this project are intended to be viewed using
* a tab size and indent size of 4. Both of these options can
* be set in IAR under Tools-Options.
*
* This file contains definitions of peripherals, the high
* level startup routine and the main system loop.
**********************************************************************/
#include msp430x26x.h
#include math.h
// Sensing and filtering
volatile unsigned long filter1 = 0;
volatile unsigned long filteri = 0;
volatile unsigned long filter2 = 0;
volatile unsigned long filterv = 0;
volatile unsigned long filter3 = 0;
volatile unsigned long filterp = 0;
// Counters
char i = 0;
volatile unsigned long j = 0;
volatile unsigned int shortlim = 2000;
volatile unsigned long longlim = 100000;
volatile unsigned long countlim = 2000;
volatile unsigned long passlim = 1000000;
// MPPT signals
volatile unsigned int IPV;
volatile unsigned int VPV;
volatile unsigned int VOUT;
volatile unsigned long PPV_P = 0;
volatile unsigned long PPV = 0;
volatile unsigned long P_PASS = 0;
volatile signed long TEMP1 = 0;
volatile signed long TEMP2 = 0;
volatile unsigned int VREF_OPT = 0;
volatile unsigned int VREF = 2137;
volatile unsigned int VREF_MIN = 2137;
volatile unsigned int VREF_MAX = 3562;
volatile unsigned int VREF_INC = 45;
// Control signals
volatile signed int error = 0;
volatile signed int error_P = 0;
volatile signed int x = 0;
volatile signed int x_P = 0;
volatile signed int u = 0;
// Mode selection signals
int MODE = 1;
int PASS = 0;
// Gate driver signals
unsigned int HIBUCK = 0;
unsigned int HIBOOST = 0;
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer
/**********************************************************************
SETUP EXTERNAL 16MHZ XTAL
**********************************************************************/
P5DIR |= BIT4 + BIT5 + BIT6; // P5.4, P5.5, P5.6= output direction
P5SEL |= BIT4 + BIT5 + BIT6; // P5.4, P5.5, P5.6= MCLK, SMCLK, ACLK
BCSCTL1 &= ~XT2OFF; // Activate XT2 high freq xtal
BCSCTL3 |= XT2S_2 + XCAP_2; // 16MHz crystal or resonator
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i 0; i--); // Time for flag to set
}
while (IFG1 & OFIFG); // OSCFault flag still set?
BCSCTL2 |= SELM_2 + SELS; // MCLK = SMCLK = XT2 HFXTAL (16MHz)
/***********************************************************************
SETUP TIMER B
**********************************************************************/
// Start-up sequence: Turn on both low sides to charge bootstrap caps
P4SEL = 0;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
// P4.1 - P4.4 output
P4DIR |= BIT1 + BIT2 + BIT3 + BIT4;
TBCCTL0 = CCIE;
TBCCR0 = 39; // PWM Period 40-1
TBCCTL1 = CLLD_2 + OUTMOD_2;
TBCCTL2 = CLLD_2 + OUTMOD_6;
TBCCTL3 = CLLD_2 + OUTMOD_2;
TBCCTL4 = CLLD_2 + OUTMOD_6;
TBCTL = TBSSEL_2 + MC_3; // SMCLK, up-down mode
/***********************************************************************
SETUP TIMER A
**********************************************************************/
P1DIR |= BIT2; // P1.2
CCTL0 = CCIE; // Interrupt enable
CCR0 = 4000; // CCR1 PWM duty cycle
TACTL = TASSEL_1 + MC_1; // ACLK, up mode
/***********************************************************************
SETUP ADC
**********************************************************************/
P6SEL = BIT1 + BIT3 + BIT4; // Enable A/D channel A1, A3, A4
// Turn on and set up ADC12
ADC12CTL0 = SHT1_4 + SHT0_4 + MSC + REF2_5V + REFON + ADC12ON;
// sample sequence of channels
ADC12CTL1 = SHP + CONSEQ_3 + SHS_0;
ADC12MCTL1 = SREF_1 + INCH_1; //ref+=Vref, channel = A1
ADC12MCTL3 = SREF_1 + INCH_3; //ref+=Vref, channel = A3
ADC12MCTL4 = SREF_1 + INCH_4 + EOS;
//ref+=Vref, channel = A4, end of sequence
ADC12IE = 0x08; // Enable ADC12IFG.3
ADC12CTL0 |= ENC; // Enable conversions
ADC12CTL0 |= ADC12SC; // Start conversion
_BIS_SR(GIE); // Enable interrupts
/***********************************************************************
CONTROL ALGORITHMS
**********************************************************************/
P6DIR |= BIT0; // Set P6.0 to output direction
while(1)
{
P6OUT ^= BIT0;
j++;
// PASS THROUGH mode: Input voltage can stay the same
if(PASS)
{
P4SEL = 0;
P4OUT = BIT1 + BIT3;
} // End of pass-through loop
else
{
// VOLTAGE CONTROLLER
if (VOUT = 3641) // Output voltage limit 40V
{
error = (VPV - VREF);
x = x_P + ((error*10 - error_P*7)/100);
if ( x -2100)
x = -2100;
if ( x 815)
x = 815;
u = x + 2000;
error_P = error; // Save current variables
x_P = x;
}
else
u = u;
// MODE SELECTION
if(u 0 && u = 2000) // Must increase input voltage: BUCK mode
MODE = 1;
else if(u 2000) // Must decrease input voltage: BOOST mode
MODE = 2;
else
MODE = MODE;
switch(MODE)
{
// BUCK operation
case 1:
{
P4OUT = BIT3;
P4SEL = BIT1 + BIT2;
if (u = 50 && u = 1800)
HIBUCK = u*4/200;
else if (u 50)
HIBUCK = 1;
else if (u 1800)
HIBUCK = 36;
break;
}
// BOOST operation
case 2:
{
P4OUT = BIT1;
P4SEL = BIT3 + BIT4;
if (u = 2125 && u = 2875)
HIBOOST = 40-((u-1875)*4/200);
else if (u 2125)
HIBOOST = 35;
else if (u 2875)
HIBOOST = 20;
break;
}
}
} // End of controller loop
if (j = countlim) // Begin MPPT scan
{
j = 0;
if (countlim longlim)
{
PPV = filterp;
if (PPV PPV_P)
{
PPV_P = PPV;
VREF_OPT = VREF;
}
if (VREF = VREF_MAX)
{
if(PASS)
{
P_PASS = filterp;
TEMP1 = P_PASS-PPV_P; // Compare Max output power vs.
TEMP2 = labs(TEMP1); // power during pass-through mode
// Power difference must be within 2W for pass-through
if(TEMP2 256552)
{
PASS = 1;
countlim = passlim;
}
else
{
VREF = VREF_OPT;
PASS = 0;
countlim = longlim;
}
}
else
{
PASS = 1;
}
}
else
VREF = VREF + VREF_INC;
}
else
{
countlim = shortlim;
VREF = VREF_MIN;
VREF_OPT = VREF_MIN;
PPV_P = 0;
P_PASS = 0;
PASS = 0;
}
}
} // End of while
} // End of main
/***********************************************************************
ADC interrupt service routine
**********************************************************************/
#pragma vector=ADC12_VECTOR __interrupt void ADC12ISR (void) {
VPV = ADC12MEM4; // Move A4 results, IFG is cleared VIN
IPV = ADC12MEM3; // Move A3 results, IFG is cleared IIN
VOUT = ADC12MEM1; // Move A1 results, IFG is cleared VOUT
// DIGITAL FILTERING
filter1 = IPV + (filteri4) - filteri;
filteri = filter14;
filter2 = VPV + (filterv4) - filterv;
filterv = filter24;
filter3 = filteri*filterv + (filterp4) - filterp;
filterp = filter34;
}
/***********************************************************************
Timer A interrupt service routine
**********************************************************************/
#pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) {
CCR0 = 1024; // Charge at 16Hz
if(PASS)
{
P4OUT = 0; // Add deadtime after turning high side off
P4OUT = BIT2 + BIT4; // Turn low side on
P4OUT = BIT2 + BIT4;
P4OUT = BIT2 + BIT4;
P4OUT = 0;
P4OUT = BIT1 + BIT3;
}
else if (MODE == 1) // BUCK
{
P4OUT = 0; // Add deadtime after turning high side off
P4OUT = BIT4; // Turn low side on
P4OUT = BIT4;
P4OUT = BIT4;
P4OUT = 0;
P4OUT = BIT3;
}
else if (MODE == 2) // BOOST
{
P4OUT = 0; // Add deadtime after turning high side off
P4OUT = BIT2; // Turn low side on
P4OUT = BIT2;
P4OUT = BIT2;
P4OUT = 0;
P4OUT = BIT1;
44); }
}
/***********************************************************************
Timer B interrupt service routine
**********************************************************************/
#pragma vector=TIMERB0_VECTOR __interrupt void Timer_B (void) {
TBCCR1 = HIBUCK;
TBCCR2 = HIBUCK + 3;
TBCCR3 = HIBOOST;
TBCCR4 = HIBOOST + 3;
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 자랑

    무슨 말인지 모르겠네요 ㅠ.ㅠ

  • 참없다

    gcc 계열 쓰시면 -l, -L, -I, 옵션 잘 만지시면 됩니다.

번호 제 목 글쓴이 날짜
2699024 C언어 공부하려는데 도와주세요!!! (2) 달님 2025-06-22
2698994 날짜 계산하는 C 코드 짜고 있는데 꽉 막혀서 질문드립니다.. (6) 별 2025-06-22
2698967 파일삭제 윈도우 폴더까지 접근하게하는 함수가 뭔가요 (2) 샤인 2025-06-21
2698938 c언어 메모리질문 (3) 나래 2025-06-21
2698909 서비스 요청 고객 관리 프로그램 짜는것좀 도와주세요ㅜㅜ (4) 궁수자리 2025-06-21
2698882 프로그래밍좀 짜주세요 (3) 황예 2025-06-21
2698855 카프-라빈 알고리즘 코딩 분석좀 도와주세요.. 꽃봄 2025-06-20
2698829 학점계산기 (7) MyWay 2025-06-20
2698782 기초적인 함수 질문이요ㅠㅠㅠㅠ 내담 2025-06-20
2698749 프로그램 짜던 도중 패닉입니다...ㅜ 파랑 2025-06-19
2698719 조건부컴파일 질문입니다.~ (2) 큐트 2025-06-19
2698693 재귀 함수 에러 바닐라 2025-06-19
2698673 고민이있는데 들어좀주세요!! (1) 초코맛캔디 2025-06-19
2698644 1부터 n까지의 합을 구하는데 엄청긴숫자의 합을 구할때는 어떻게 해야하나요? (4) 슬우 2025-06-18
2698616 다른 함수로 안넘어갑니다..;;; 도1도캣 2025-06-18
2698587 배열하다 막혀서... (3) WhiteCat 2025-06-18
2698559 문자열을 비우는방법 (2) 하늘 2025-06-18
2698528 착하고 친절한 선생씌구해염~ㅋㅋ (4) 옆집언니야 2025-06-17
2698502 자료구조 큐 캔서 2025-06-17
2698477 실행화면 배경문의요 선아 2025-06-17
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com