EEPROM 질문입니다.

익명 사용자의 이미지

EEPROM에 데이터를 저장하고 껏다가 키면 데이터 값이 2씩 증가해 있는데

이 문제에 대해 경험하시거나 아시는 분 계시나요... 도와주세요...

글쓴이의 이미지

EEPROM에 데이터 값을 저장하여 껏다 켜면 그 저장된 값을 그대로 불러와야하는데 그러지 못합니다.

데이터 시트를 참고하여 작성하였는데도 이러한 문제가 발생하여 질문합니다.

int main(void)
{
DDRC = 0XFF;
DDRA = 0xFF;
DDRG = 0xFF;

MCUCR = 0X80;
XMCRA = 0XC1;
XMCRB = 0X80;

Count = CT_Read(addr);

while(1)
{
for(i; i<10; i++)
{
Count++;
CT_Write(addr, Count);
}
}
}

unsigned char CT_Read(unsigned int u16addr)
{
while(EECR & 0x02);

EEAR = u16addr;

EECR |= 0x01;

return EEDR;
}
void CT_Write(unsigned int u16addr, unsigned char u8Count)
{
while(EECR & 0x02);

EEAR = u16addr;
EEDR = u8Count;

EECR |= 0x04;
EECR |= 0x02;
}

EEPROM에 값이 잘저장되는지 확인하기위해 이와같이 작성하여 실험하는데도 값이 제대로 저장이 안됩니다..

혹시 while문에 넣으면 안되거나 for문에서 저장하면 안되는 조건들이 있나요?

익명 사용자의 이미지

코드 상의 문제점
- 변수 addr의 초기 값이 없습니다
- for문 안의 변수 i의 선언문/초기값이 없습니다

header파일 있을 듯한데...
그리고 code을 보기 좋게 올리는 방법이 있으니 찾아서 적용하시면 좀 더 댓글이 많아 지겠지요

Anti-Lock의 이미지

껏다 켜면 값이 증가해 있다는 것이 맞나요?
끄기전에 다시 읽어보면 증가해 있지 않은것이 확인 되었습니까?
예를 들어주신 코드를 보면 같은 하나의 주소에 값을 쓰는동작을 쉬지도 않고 무한반복하고 있네요.(물론 for문이 동작안하고 있을 수도 있겠지만)
eeprom 수명이 다 되었을수도 있으니 확인하셔야 겠습니다.

라스코니의 이미지

코멘트를 드리자면

addr 값이 정해진 바가 없음
write 할 때 addr이 변경되지 않음.. 즉 0..9까지 한 주소에 쭉 써짐.

그리고 추가적으로 EERPOM은 상대적으로 느린 장치이기 때문에 delay() 처럼 약간의 딜레이를 쓰기, 읽기 사이에 넣어주어야 할 수도 있습니다. EEPROM 스펙 문서를 보세요. write에 최소한 몇 us가 걸리는지...

CPU는 생각외로 빨라서 몇 us 동안에 수백번도 쓸수 있어요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.