Hafoom.com

2019/07/16 +1

[D7] 20190716

분류없음2019.07.16 10:25

SCI와 졸업논문 등으로 하나도 진행 못함..2주 날림

 

 

[Kernel] 

상당히 어렵다. 기존 배경지식들을 써먹기 힘들정도로 새롭게 배워야 할게 많다.

이건 사실상 포기해야 맞을듯 싶다.

디바이스 드라이버 쪽이나 나중에 해야할 듯 싶다.

 

[HDL]

Verilog를 역시 많이 하는 것 같아 책을 구입..

당초 계획보다 빨리/많이 해야할 듯

 

 

[AVR/ARM]

인터럽트, UART, PWM 정도하고 ARM으로 넘어가서 주력으로 함이 맞을듯.

개발 스펙과 요구사항에 따라 AVR도 쓰는 것 같긴한데...

=>>도움을 구해본 결과... 알고보니 핀 자체가 인터럽트가 아니다....

당연히 PE 전체가 맞다고 봤는데..

 

Atmega128 Pinout 

PD0~3 = 인터럽트

PE4~6 = 인터럽트

 

 

 

실패 코드 백업.

PE4,5 사용하면 되는데 다른 핀은 안됨;;;;

거기에 따라 레지스터 바꾸는데도 안됨...

 

#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>

#define F_CPU 16000000UL

int d2b[10] = {0b00111111,
0b00000110,
0b01011011,
0b01001111,
0b01100110,
0b01101101,
0b01111101,
0b00100111,
0b01111111,
0b01101111};

int main(void)
{
DDRE = 0x00; // switch
DDRC = 0xFF; // fnd segment
DDRF = 0b00001111; 
    
    SREG |= 0x80;
    EIMSK = 0x0c;
    EICRA = 0x00;
 EICRA = 0x00;
 
while(1){
PORTC = d2b[3];
PORTF = ~(0b1);

/*
for (int c=0 ; c<10 ; c++){
for (int k=0 ; k<380 ; k++){
for (int i=0 ; i<4 ; i++){
PORTC = d2b[(c+i)%10]; //
//PORTF = ~(0b1<<i); //this is for animiation
PORTF = (0b00000001); //this is for animiation
_delay_ms(50);
}
}
}
*/
}
return 0;
}
ISR (INT2_vect)
{
PORTC = d2b[1]; //
//PORTF = ~(0b1<<i); /
PORTF = ~(0b00000010); 
}

ISR(INT3_vect)
{
PORTC = d2b[8]; //
//PORTF = ~(0b1<<i); 
PORTF = ~(0b00000001);


}

Comment +0