|
mega8 + ad77705, нужен код |
|
|
|
Jan 19 2009, 16:02
|
Участник

Группа: Новичок
Сообщений: 45
Регистрация: 30-10-06
Пользователь №: 21 801

|
подскажите плиз как правильно сконфигурировать 7705 для измерения напряжения 50 раз в секунду. и будет ли вообще работать 7705 с таким кварцем? и с мегой на 1Мгц... примеров видел много,но ни один не работает...нужен код на Си...что лучше - через стандартный SPI или своими циклами ? CODE DDRB = ((1<<MOSI)|(1<<SCLK)|(1<<SS)); //Enable SPI, Select Master, SCLK idles high, //Sample on rising edge Setup on falling edge, //SCLK=F_CPU/4 SPCR =0x52; //((1<<SPE)|(1<<MSTR)|(1<<CPOL)|(1<<CPHA)); //Serially reset the Chip SPDR = 0xFF; //Wait for transfer while(!(SPSR & (1<<SPIF))); //Serially reset the Chip SPDR = 0xFF; //Wait for transfer while(!(SPSR & (1<<SPIF))); //Serially reset the Chip SPDR = 0xFF; //Wait for transfer while(!(SPSR & (1<<SPIF))); //Serially reset the Chip SPDR = 0xFF; //Wait for transfer while(!(SPSR & (1<<SPIF))); //Serially reset the Chip SPDR = 0xFF; //Wait for transfer while(!(SPSR & (1<<SPIF))); //Send to Comm Reg: Next Write Clk SPDR = 0b00100000; //0x20 //Wait for transfer while(!(SPSR & (1<<SPIF))); //Send to ClkReg: Clock Bits and Update rate SPDR = 0x18; //0b00011000; //Wait for transfer while(!(SPSR & (1<<SPIF))); //Send to Comm Reg: write setup SPDR = 0b00010000; //0x10 //Wait for transfer while(!(SPSR & (1<<SPIF))); //Send to Setup: FSYNC, Gain, Conditions, Self Calibration SPDR = 0b01000100; //Wait for transfer while(!(SPSR & (1<<SPIF))); while(1) { //Is DDRY pin low/data ready? //Send to Comm: next read Data SPDR = 0b00111000; // 0x38 //Wait for transfer while(!(SPSR & (1<<SPIF))); DDRB=0x10; DDRB.5=1; CLK=1; while(DRDY); delay_us(us1); CLK=0; delay_us(us1); while(i<16) { CLK=1;delay_us(us1); adc_rez[i]='0'; if(D_OUT==1) adc_rez[i]='1'; CLK=0;delay_us(us1); i++; }
|
|
|
|
|
 |
Ответов
|
Jan 21 2009, 12:46
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата write7705(20); write7705(1C); write7705(28); чё, прямо вот так? а может, надо было 0х20, 0х1с и 0х28? или компилятор шибко умный, сам допрёт? С 7705 у нас люди работают нормально, нареканий нет, за исключением низкой скорости Цитата unsigned read7705(void) ??? unsigned чего?
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Jan 21 2009, 15:06
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(MrYuran @ Jan 21 2009, 17:46)  ??? unsigned чего? По-умолчанию в Си принимается тип int. Раз написано unsigned, то значит unsigned int. Вы же наверняка не пишете полностью unsigned long int, ограничиваясь unsigned long, не так ли?
|
|
|
|
|
Jan 21 2009, 17:49
|
Участник

Группа: Новичок
Сообщений: 45
Регистрация: 30-10-06
Пользователь №: 21 801

|
посадил RESET 7705 на мегу... нашел готовый код http://user.chol.com/~ascbbs/ccscdrv2/AD7705.Cпомогло... Clock reg = 0x1d
Сообщение отредактировал simsim - Jan 21 2009, 18:11
|
|
|
|
|
Jan 21 2009, 19:05
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(simsim @ Jan 21 2009, 19:49)  Цитата This source code may only be used by licensed users of the CCS C //// //// compiler. Вы являетесь лицензированным пользователем CSS? Цитата(simsim @ Jan 21 2009, 19:49)  помогло...  Значит, в своем коде из десятка строк так и не разобрались. А когда понадобится другую микросхему подключать, снова чужой код искать будете? Код shift_left(&data,1,0)void setup_adc_device(int calmode, int gainsetting, int operation, int rate) { ......
write_adc_byte( calmode|gainsetting|operation);//Setup Register info here Мда, образец эффективности
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
simsim mega8 + ad77705 Jan 19 2009, 16:02 simsim схема Jan 19 2009, 17:28 simsim или - будет работать такой код ?
у меня не работае... Jan 19 2009, 19:26 aesok Цитата(simsim @ Jan 19 2009, 22:26) Кодun... Jan 20 2009, 08:19  simsim пробую так...
сделал обнуление D_IN..
сделал сдвиг... Jan 20 2009, 14:59   Сергей Борщ Цитата(simsim @ Jan 20 2009, 16:59) пробу... Jan 20 2009, 15:22    simsim Цитата(Сергей Борщ @ Jan 20 2009, 19:22) ... Jan 20 2009, 17:07     demiurg_spb Цитата(simsim @ Jan 20 2009, 20:07) Код#d... Jan 21 2009, 09:31      simsim Цитата(demiurg_spb @ Jan 21 2009, 13:31) ... Jan 21 2009, 09:58       Сергей Борщ Цитата(simsim @ Jan 21 2009, 11:58) пробу... Jan 21 2009, 11:25        simsim ну и головняк эта 7705...
с 7816 работал нормально... Jan 21 2009, 12:38         Сергей Борщ Цитата(simsim @ Jan 21 2009, 14:38) заказ... Jan 21 2009, 13:01 simsim Цитата(MrYuran @ Jan 21 2009, 16:46) чё, ... Jan 21 2009, 14:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|