10.07.2015 Views

cubloc_manual2.pdf

cubloc_manual2.pdf

cubloc_manual2.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

다음은 Peek, Poke, Memadr 명령의 활용예입니다. EEWRITE 명령은 정수형 데이터를 취급하는명령이므로, 실수형 변수값을 저장할 수 없습니다. 만약 EEWRITE, EEREAD 에서 실수형 데이터를 저장한뒤 읽어들인다면 다음과 같은 결과를 볼 수 있을 것입니다.Const Device = CB280Dim f1 As Single, f2 As Singlef1 = 3.14Eewrite 0,f1,4f2 = Eeread(0,4)Debug Float f2,crDebug 창에는 3.14 가 나와야 하는데, 3.00000 이 표시됩니다. 그 이유는 EEWRITE 명령에서 F1변수가 정수형 데이터로 자동변환되었기 때문입니다. 실수형 데이터를 있는 그대로 EEPROM 에저장하기 위해서는 메모리에 직접 접근하여, 데이터를 읽어오는 수밖에 없습니다. 다음 프로그램은 Memadr 과 Peek, Poke 명령으로 실수형 데이터의 EEPROM 저장을 구현한 것입니다.Const Device = CB280Dim f1 As Single, f2 As Singlef1 = 3.14Eewrite 10,Peek(Memadr(f1),4),4Poke Memadr(F2),Eeread(10,4),4Debug Float F2,CRDebug 창에 결과는 3.14 로 제대로 표시됩니다.Memadr(f1)으로 f1 변수의 어드레스를 알아낸뒤. Peek 명령으로 해당 번지에 들어있는 값을 직접접근하여 4 바이트 읽어옵니다. 여기까지 Peek(Memadr(f1),4) 로 표현할 수 있습니다. 그값을EEPROM 에 저장하는 것입니다.읽어올 때에는 반대로 Poke 명령으로 Memadr(f2)의 어드레스에 직접 기입합니다.주의사항Poke 명령을 사용할 때에는 충분한 주의를 기울여야 합니다. 포인터 구조를 정확히 이해하지 못한상황에서 사용한다면, 전체 프로그램의 동작에 치명적인 영향을 줄 수 있으므로 주의해야 합니다.Peek, Poke 는 큐블록의 데이터 메모리인 SRAM에만 접근할 수 있으며, I/O 레지스터나 프로그램메모리 (플레쉬 영역)에는 접근할 수 없습니다.201

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!