реклама на сайте
подробности

 
 
> прог. реализ. AVR+adc124s101 подкл. через SPI, терморегулятор на 0.1
Чип-Хрум
сообщение Apr 1 2007, 15:31
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 1-04-07
Пользователь №: 26 675



Нужна программная реализация получения 12 бит от ADC124s101 на Atmega32 .
Пробывал опрашивать как на прямую так и с помощью прерывания ,по моим подсчетам
эта микросхема должна выдавать все 12 бит через каждый мегахерц.
А на самом деле получается около раза в секунду.
Выводится все на жки в таком порядке:
на одной знакопозиции
0909
4b4b
0909
4a4a
0909
4949
0909
4949
Короче сейчас дело не в точности показаний а в том чтобы вывести 0949 за место 09094949.
Может я че в програмке напутал Кто силен подскажите!
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <util/delay.h>
#include <stdio.h>
#include <avr/eeprom.h>

#define bitset(var,bitno) ((var) |= 1 << (bitno))
#define bitclr(var,bitno) ((var) &= ~(1 << (bitno)))

char dat0=0,dat1=0; //переменные, 8бит для dat0 и 4бита для dat1
char revers=0;

ISR(SPI_STC_vect) // вектор прерывания для окончания посылки байта
{

while(revers==0) // что-то типа реверса за одно прохождение
{ // опрашавается одна часть 12 бит
dat0 = SPDR; //
revers=1; //
} //
//
while(revers==1) //
{ //
dat1 = SPDR;
revers=0;
}

bitset(SREG,7);
SPDR = 0x00;
}

int main(void)
{

DDRB=0xb0; // настройка порта b
SPCR=0xd3; // настройка spi

SPDR = 0x00;
bitset(SREG,7); // включаем прерывание

while(1) // вечный цикл

return (0);

}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Чип-Хрум
сообщение Apr 2 2007, 10:57
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 1-04-07
Пользователь №: 26 675



smile.gif Надо заметить идея заслуживающая уважения a14.gif !
Но дело в том что перед тем как получить 12 бит из ADC, нужно 8бит отправить.
Я в си новечек раньше только на ассемблере писал програмки.
Короче теперь нужен цикл отправки переменной char по тому же SPI.
И подскажите где правильно научиться битами управлять в переменных,
а то пролистал всю мукулатуру а дельного ничего нет.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 04:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016