[완료]ADC관련입니다..동작이 되지않아서 질문드립니다.

singularof의 이미지

AT91SAM9260으로 내부 ADC를 제어하려고 합니다.

다른 코드는 정상적으로 동작하는것 확인 했고 ADC를 함수로 추가하는데 ADC가 제대로 동작하지 않네요.

ADC코드부분은

virt_addr = init(AT91C_BASE_ADC);
AT91F_ADC_CfgModeReg(virt_addr, 0);
AT91F_ADC_CfgTimings(virt_addr, 96, 1, 256, 16000);
AT91F_ADC_EnableChannel (virt_addr, (AT91C_ADC_CH0));
AT91F_ADC_EnableChannel (virt_addr, (AT91C_ADC_CH1));

AT91F_ADC_StartConversion (virt_addr);
while (!((AT91F_ADC_GetStatus (virt_addr)) && (1<<7) ) ); <--------요기

nAdc0 = AT91F_ADC_GetConvertedDataCH0 (virt_addr);
nAdc1 = AT91F_ADC_GetConvertedDataCH1 (virt_addr);

printf("%03x\n",nAdc0);

입니다.

여기서 virt_addr는 보드에서 AT91C_BASE_ADC의 주소로 직접 접근이 안되어서 virtual address를 받아서 접근하려고 한것입니다.

Hyun의 이미지

ADC는 보통 동작에 관한 설정(채널이나 입력 레벨, 변환 비트수 등)을 먼저 해주고(보통 레지스터 설정을 통해 이루어 집니다) 시작할 시점에 시작 명령을 줍니다(AD 시작명령은 보통 특정 레지스터를 설정하거나 특정 핀을 이용합니다). 그리고, 얼마 후의 시간이 지나면 AD가 끝나고 상태 레지스터에 AD가 끝났다는것을 알리는 표시가 생깁니다.

구체적인 동작은 칩의 데이터시트를 보셔야 하는데, 아직 칩의 데이터시트를 보지 않으신 것 같네요. 칩의 데이터시트를 보고 해당 명령들이 잘 설정되었는지 확인해보세요.


나도 세벌식을 씁니다
bushi의 이미지

&& 연산에 대해서 알아보세요

OTL

km192의 이미지

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4343
에 보시면 해당하시는 chip인 AT91SAM9260-EK의 softpack이 있습니다.
download후 압축을 푸시면 sample code와 관련 document가 있습니다.
참고하시면 되겠네요..

auditory의 이미지


당장 무한루프를 도는 이유는 && 때문이네요..
&&는 &의 오타로 보이고요..

그런데 &로 고친다고해서 잘 될것 같지는 않네요.
자료를 많이 찾아보셔야할듯..

singularof의 이미지

&&은 오타 맞고요...

설정은 전부 다 맞게 했는데.. 클럭을 활성화해야 하는데 활성화 하는부분이 없어서.. 계속 무한 루프에 빠져있었네요..

AT91F_PMC_EnablePeriphClock ( virt_addr, 1 << AT91C_ID_ADC ); <---- 클럭
AT91F_ADC_SoftReset (virt_addr); <---- 소프트트리거 리셋 해주었습니다.

AT91F_ADC_CfgModeReg(virt_addr, 0);
AT91F_ADC_CfgTimings(virt_addr, 96, 1, 256, 16000);
AT91F_ADC_EnableChannel (virt_addr, (AT91C_ADC_CH0));
AT91F_ADC_EnableChannel (virt_addr, (AT91C_ADC_CH1));

AT91F_ADC_StartConversion (virt_addr);
while (!((AT91F_ADC_GetStatus (virt_addr)) & (1<<0) ) );
while (!((AT91F_ADC_GetStatus (virt_addr)) & (1<<1) ) );

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.