오전(9시~오후 12시50분)
@윈도우 네트워크(TCP/IP) 윈속 네트워크 모델 소스 분석.
오후(1시 40분~오후 5시30분)
@Atmega 타이머 카운트 사용방법....
@소스
==========================================================
//Atmega 128을 이용한 타이머 작동//
#include <ddr.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#define CPU_CLOCK 16000000 // cpu clodk = 16,000,000 Hz
#define TICKS_PER_SEC 1000 // Ticks per sec = 1,000
#define PRESCALER 64 // 클럭의 배수 (크기,오버헤드)
#define DDR_LED DDRF
#define DATA_TO_LED PORTF
//#define OCR0 250
volatile unsigned int g_elapsed_time; // 시간 변수
void initLED(void); // LED 초기화
void setTCCR0(void);
void initTCNT0(void);
void setTIMSK(void);
void toggleLED(char * state);
void sleep(unsigned int elapsed_time);
SIGNAL(SIG_OUTPUT_COMPARE0);
//void initOCR0(void);
int main()
{
char state=0;
initLED();
setTCCR0();
initTCNT0();
setTIMSK();
sei();
while(1)
{
toggleLED(&state);
sleep(1000);
}
return 1;
}
/*
void initOCR0(void) //OCR 초기화....3BIT=1,6BIT=0
{
//TCCR0=TCCR0|(1<<3)|(0<<6);
OCR0=0b11111010; //250으로 초기화...
}
*/
void initLED(void) //LED 초기화 함수
{
DDR_LED=0xFF;
DATA_TO_LED=0x00; // 전부켜져있음
}
void setTCCR0(void) // 분주비 64로 설정//128
{
//TCCR0=TCCR0|(1<<2)|(1<<0);
TCCR0=0b00001100;
//TCCT0=TCCR0|(1<<2);
//TCCR0 &=~(1<<1);
//TCCR0 &=~(1<<0);
//TCCR0=0b00000100;
//TCCR0 |=1<<cs02;
//TCCRO &=~(1<<cs01);
//TCCR0 &=~(1<<cs00);
}
void initTCNT0(void) // TCNT ///6으로 초기화.....131초기화..
{
TCNT0=0b00000000;
//TCNT0=256-(CPU_CLOCK/TICKS_PER_SEC/PRESCALER);
OCR0 = 0b11111010;
}
void setTIMSK(void) //overflow.....초기화...
{
//TIMSK=0b00000001;
TIMSK |=1<<1; //Bit 1 OCIE0: Timer/Counter0 Output Compare Match Interrupt Enable
//TIMSK |=1<<TOIE0;
}
void toggleLED(char * state)
{
if(*state==0)
{
DATA_TO_LED=0x00;
*state=1;
}
else if(*state==1)
{
DATA_TO_LED=0xff;
*state=0;
}
}
void sleep(unsigned int elapsed_time)
{
g_elapsed_time=0;
while(1)
{
if(g_elapsed_time==elapsed_time)
{
break;
}
}
}
SIGNAL(SIG_OUTPUT_COMPARE0)
{
//initTCNT0();
g_elapsed_time++;
}
=============================================================
@c언어.....프로그램....과제...
/*======문제1========그림대로 출력하세요. (중첩 for문 사용)
#include <stdio.h>
int main()
{
int iCount;
int jCount;
for(iCount=1;6>=iCount;++iCount)
{
for(jCount=1;iCount>=jCount;++jCount)
{
printf(" ");
}
printf("*\n");
}
for(iCount=6;0<iCount;--iCount)
{
for(jCount=1;iCount>=jCount;++jCount)
{
printf(" ");
}
printf("*\n");
}
return 0;
}
*/
//=================문제2======== 출력할 줄의 개수를 입력받은 후 직삼각형을 출력하세요
/*
#include <stdio.h>
int main()
{
int iCount;
int jCount;
int Input;
printf("Input Number: ");
scanf("%d",&Input);
for(iCount=1;Input>=iCount;++iCount)
{
for(jCount=1;iCount>=jCount;++jCount)
{
printf("*");
}
printf("\n");
}
return 0;
}
*/
//============문제3 =================그림대로 출력하세요. (중첩 for문 사용)
#include <stdio.h>
int main()
{
int iCount;
int jCount;
int kCount=6;
void print_blanc(void);
void print_star(void);
for(iCount=1;7>=iCount;++iCount)
{
for(jCount=7;1<=jCount;++jCount)
{
}
printf("\n");
}
return 0;
}
void print_blanc(void)
{
printf(" ");
}
void print_star(void)
{
printf("*");
}
'코스웨어 > 10년 시스템제어' 카테고리의 다른 글
[시스템제어]4월22일 보고서 임창모 (1) | 2010.04.22 |
---|---|
[시스템제어]4월20일 보고서 19번 이상은 (1) | 2010.04.20 |
[시스템제어] 4월 19일 보고서 이민규 (1) | 2010.04.20 |
[시스템제어] 4월 15일 17번 유성민 (1) | 2010.04.15 |
시스템제어 - 4월14일 안태민(16번) (1) | 2010.04.14 |
시스템제어 4월12일 14번 선동환 보고서 (1) | 2010.04.12 |
13번 배정훈 보고서(4월 9일) (1) | 2010.04.11 |
12번 박철민 보고서. (1) | 2010.04.08 |