블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

사이클과 클럭은 엄밀히 따지면, 다를 수 있습니다.

사이클은 몇클럭이 될 수 있습니다.

예) 1사이클 동작에 16클럭이 필요하다.

1사이클 동작에 1클럭이 필요한 경우에는 동일합니다.


Posted by 안녕1999
, |

윈도우7 사용자가, CPU, 메인보드만 교체해서, 성능을 업그레이드할 방법이 없어졌다.

인텔과 AMD사가, 최신 CPU는 윈도우7을 지원하지 않는다고, 발표했다.

최신 CPU에는 최신 윈도우10을 설치해야만 한다.

이는 어찌보면, 담합이다.

본인은 윈도우XP를 선호하는 사람중에 한명이다.

이유는 윈도우7이상은 너무 무겁고, 벅벅거리기때문이다.

반면, 윈도우XP는 가볍고, 벅벅거리지도 않는다.



하드디스크 벅벅거리는 증상

=================================

나는 아무것도 안하는데, 윈도우가 하드디스크를 쉴세없이 읽어댄다. 업그레이드라도 하는 모양이다.

윈도우XP는 안시키면, 안한다. 조용히 잘있고, 성능이 떨어진다고 생각되지 않는다.

오히려 윈도우7이상에서는 너무 느리다.



세월이 흘러, 운영체제도, 하드웨어도 점점 발전하니, 바꾸는것이 좋은것은 맞다.

하지만, 바꾸는게 불편한 사람도 있다.

예)

컴퓨터 관련 제품을 제조 판매하는 한 업체직원은, 이 문제때문에 골치가 아프다.

사용하는 비디오카드가 윈도우XP,7드라이버만 지원한다.

윈도우7은 단종되었고, 설상가상으로, 최신 CPU에는 윈도우7이 설치가 안된다.

Posted by 안녕1999
, |

system-reset을 구현하기위해, 와치독타이머를 사용하려고한다.

그러나, 기존 와치독 타이머는 너무 오래걸려서, 중지하고, 시간을 짧게 조절하려고한다.


=> IWDG는 한번 시작하면, 중지할 수 없다고 합니다.(변경 불가인듯)


적당한 시간설정해서 사용해야할듯.

Posted by 안녕1999
, |

네.


그러나, 문법을 안다고, 글을 잘쓰는건 아닙니다.

글을 잘쓰기위한, 기본 조건입니다.


프로그램을 잘만들려면, 많은 것이 필요합니다.

- C언어도 능통해야하고,

- 프로그램 작성에 대한 노하우(방법론)

- 프로그램하려는 분야에도 많은 지식이 있어야합니다.

- ATmega도 하려면, 하드웨어(전자회로)에 대한 지식도 있어야 합니다.


좋은 스승만나서, 열심히 하다보면, 잘하게 될겁니다.

천리길도 한걸음 부터...

Posted by 안녕1999
, |
폴링방식 : 데이터 송수신이 끝날때까지 대기.(다른작업은 할 수 없음)

인터럽트를 사용해야하는 이유
----------------------------------
- UART는 매우 저속통신이라
  1바이트 송수신할때도 CPU는 많은 일을 할 수 있습니다.
  1바이트 송수신 끝날때까지 기다리는것은 너무 큰 손해입니다.
- 폴링방식으로 하면, 받은 데이터를 처리하는 동안에는 다른 데이터를 받을 수 없습니다.
  인터럽트 방식은 수신 버퍼를 만들고, 인터럽트 발생할때마다, 수신 버퍼에 넣고, 나중에 메인함수에서 처리합니다.
  폴링방식에 비해, 고속이며, 데이터를 놓치는 경우가 적습니다.(버퍼 크기에 좌우됨)

※인터럽트가 발생하면, CPU가 깨어납니다.

기본 설계
--------------
main()
{
초기화
while(1)
{
uart1_rx_proc();
CPU_Sleep();
}
}

void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//데이터가 수신되었는가?
{
USART_ClearITPendingBit(USART1, USART_IT_RXNE);//데이터 수신비트 클리어
uart1_fifo_push_byte((USART_ReceiveData(USART1)) & 0x00FF);
}
}


  Polling Mode

  =============

  In Polling Mode, the UART communication can be managed by 10 flags:

     1. USART_FLAG_TXE : to indicate the status of the transmit buffer register

     2. USART_FLAG_RXNE : to indicate the status of the receive buffer register

     3. USART_FLAG_TC : to indicate the status of the transmit operation

     4. USART_FLAG_IDLE : to indicate the status of the Idle Line             

     5. USART_FLAG_CTS : to indicate the status of the nCTS input

     6. USART_FLAG_LBD : to indicate the status of the LIN break detection

     7. USART_FLAG_NE : to indicate if a noise error occur

     8. USART_FLAG_FE : to indicate if a frame error occur

     9. USART_FLAG_PE : to indicate if a parity error occur

     10. USART_FLAG_ORE : to indicate if an Overrun error occur 





     1. USART_IT_TXE : specifies the interrupt source for the Tx buffer empty 

                       interrupt. 

     2. USART_IT_RXNE : specifies the interrupt source for the Rx buffer not 

                        empty interrupt.

     3. USART_IT_TC : specifies the interrupt source for the Transmit complete 

                       interrupt. 

     4. USART_IT_IDLE : specifies the interrupt source for the Idle Line interrupt.             

     5. USART_IT_CTS : specifies the interrupt source for the CTS interrupt. 

     6. USART_IT_LBD : specifies the interrupt source for the LIN break detection

                       interrupt. 

     7. USART_IT_PE : specifies the interrupt source for the parity error interrupt. 

     8. USART_IT_ERR :  specifies the interrupt source for the errors interrupt.

 



Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함