|
MSP430 - снова вопросы от чайника, Вопросы от чайника про MSP и магнитный компас |
|
|
|
Jul 23 2008, 19:17
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
 Здравствуйте. Кто читал предыдущую мою тему "MSP430 - вопросы от чайника", тот поймет - это снова я  Тему закрыли, слишком долго висела. А вопрсов все больше. Если кому-то вдруг окажется не влом разбираться, то Вот кусок проги: int flag;//глобальные переменные int cindex; испульзуемые функции(write_flash - пишет число во flash, read_flash - считывает) void write_flash(float* value, float *addr) { while(FCTL1 & BUSY); _BIC_SR(GIE); FCTL1 = FWKEY + ERASE; FCTL3 = FWKEY; *addr = 0; while(FCTL1 & BUSY); FCTL1 = FWKEY + WRT; for (int i=0;i<=3;i++) { *addr = value[i]; addr++; } _BIS_SR(GIE); while(FCTL1 & BUSY); FCTL1 = FWKEY; FCTL3 = FWKEY + LOCK; } void read_flash(float* addr, float* pfO) { for (int i=0;i<=3;i++) { pfO[i]=*addr; addr++; } } Чего хочу сделать - Если присылаю 0, то должны считаться два показания с выводов P6.3 и P6.4, присылается 0хАА - т.е. "считалось", записываются первые элементы двух массивоы данных. Когда набирается по четыре элемента, индекс сбрасывается Если присылаю 0xFF, то должна выполнится функция calibrovka_hmc, если она выполняется неверно, то присылается 0хСС, иначе из flash считывается и присылается вычисленная с помощью этой функции константа. Внутри функции main ADC12CTL0 = ADC12ON + REFON + SHT0_8; //настройка АЦП ADC12CTL1 = CSTARTADD0 + CSTARTADD1 + ADC12SSEL_1+ CONSEQ_1; ADC12MCTL3 = INCH_3; ADC12MCTL4 = INCH_4 + EOS; float temp[4]; flag=0; cindex=0; for(;;) { for(delay = 0; delay <20000; delay++); if( flag==0 ) {send_int(0x0); } if( flag==1 ) { if (calibrovka_hmc(CVx, CVy, temp)==0)//calibrovka_hmc - имеет параметрами два массива и вычисляет четыре константы(нужные для калибровки устройства) { send_int(0xCC); flag=0; } else { float pfO[4]; read_flash((float*)0x1000,pfO); r=(int)(pfO[0]+0.5); send_int®; flag=0; } flag=4; } if (flag==2) { ADC12CTL0 |=ADC12SC + ENC; CVx[cindex] = ADC12MEM3; CVy[cindex] = ADC12MEM4; ADC12CTL0 &= ENC; cindex++; send_int(0xAA); flag=0; } if (cindex>3) cindex=0; } } #pragma vector=UART0RX_VECTOR __interrupt void usart0_rx ( void) { if( RXBUF0==0xFF) flag = 1; if (RXBUF0==0x0) flag = 2; } В ЧЕМ ПРОБЛЕМА: Перед выполнением калибровки присылаю элементы массива, полученного при считывании показаний с выводов, - оказывается, что в массив записываются по два-три раза одно значение, хотя этого не может быть. Соответственно, из-за этого не работает и все остальное Может, неправильно настроен АЦП? Или в чем может быть дело? И, если кому-то вдруг не влом разбираться - функции записи во flash и чтения flash - можно ли сделать как-то поумнее?
|
|
|
|
|
 |
Ответов
|
Sep 26 2008, 15:33
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Ну вот она и ошибка. Первой командой инициализации USART должна быть установка бита SWRST, как это и указано в User's Guide. Вставьте в процедуру инициализации первой командой Код U0CTL = SWRST; А дальше по вашему тексту. Код U0CTL |= CHAR; // 8-bit character U0TCTL = SSEL0; // UCLK = ACLK U0BR0 = 0xA0; // 8.00Mhz 19200 bps (416) U0BR1 = 0x01; U0MCTL = 0x00; // no modulation ME1 |= UTXE0 | URXE0; // Enable USART0 TXD/RXD U0CTL &= ~SWRST; IE1 |= URXIE0; и все лишние нули пропадут.
Эскизы прикрепленных изображений
|
|
|
|
|
Sep 29 2008, 19:16
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Цитата(rezident @ Sep 26 2008, 19:33)  Ну вот она и ошибка. Первой командой инициализации USART должна быть установка бита SWRST, как это и указано в User's Guide. Вставьте в процедуру инициализации первой командой Код U0CTL = SWRST; не-а, не помогло
|
|
|
|
Сообщений в этой теме
Daria MSP430 - снова вопросы от чайника Jul 23 2008, 19:17 rezident Некоторое (продолжительное) время не заглядывал в ... Jul 23 2008, 22:03 Daria Ага, все же заглянули спасибо за комментарии и кр... Jul 24 2008, 19:29  =DS= Цитата(Daria @ Jul 24 2008, 23:29) А по п... Jul 25 2008, 03:03   Daria Цитата(=DS= @ Jul 25 2008, 07:03) *addr ... Jul 25 2008, 18:27    rezident Цитата(Daria @ Jul 26 2008, 00:27) а к... Jul 25 2008, 19:47     Daria И версии, и настройки. А кикстарт - потому что сн... Jul 25 2008, 21:05      rezident Цитата(Daria @ Jul 26 2008, 03:05) И верс... Jul 25 2008, 21:38       Daria Цитата(rezident @ Jul 26 2008, 01:38) Ну ... Jul 26 2008, 12:38        rezident Цитата(Daria @ Jul 26 2008, 18:38) rezide... Jul 26 2008, 12:58         Daria Так вот. Галочка стоит. А состояние переменных все... Jul 28 2008, 20:14          rezident Цитата(Daria @ Jul 29 2008, 02:14) Так во... Jul 28 2008, 23:05           Daria Цитата(rezident @ Jul 29 2008, 03:05) Ну ... Jul 30 2008, 19:31           Daria Здравствуйте, снова я
Цитата(rezident @ Jul... Aug 7 2008, 20:43            rezident Цитата(Daria @ Aug 8 2008, 02:43) ЗКак бы... Aug 8 2008, 01:29             Daria Цитата(rezident @ Aug 8 2008, 05:29) Можн... Aug 8 2008, 20:28              rezident Цитата(Daria @ Aug 9 2008, 02:28) а вот п... Aug 9 2008, 01:10               Daria Цитата(rezident @ Aug 9 2008, 05:10) Коли... Aug 9 2008, 20:42                rezident Цитата(Daria @ Aug 10 2008, 02:42) Ну и п... Aug 9 2008, 22:10                 Daria Так. Ну вот, как-то не выходит ничего
Если в пре... Aug 11 2008, 20:19                  Dog Pawlowa Цитата(Daria @ Aug 11 2008, 23:19) Как бы... Aug 12 2008, 06:14                   Daria Цитата(Dog Pawlowa @ Aug 12 2008, 10:14) ... Aug 12 2008, 19:55      =DS= Цитата(Daria @ Jul 26 2008, 01:05) Дебагг... Jul 25 2008, 21:40 Т.Достоевский Может так?
Код#pragma vector=ADC_VECTOR
{
if ... Aug 11 2008, 21:52 rezident Все дело в том, что вы маски неверно накладываете.... Aug 11 2008, 23:19 rezident Daria, извините за откровенность, но у вас какой-т... Aug 12 2008, 23:30 Daria Цитата(rezident @ Aug 13 2008, 03:30)
Re... Aug 13 2008, 17:06  rezident Цитата(Daria @ Aug 13 2008, 23:06) Но - з... Aug 13 2008, 18:19   Daria Цитата(rezident @ Aug 13 2008, 22:19)
Яс... Aug 13 2008, 19:59  zhevak Ух-х, какие крутые виражи! Ух, как человека мы... Aug 14 2008, 08:09   Daria Цитата(zhevak @ Aug 14 2008, 12:09) Rezid... Aug 14 2008, 20:47    rezident Цитата(Daria @ Aug 15 2008, 02:47) Rezide... Aug 14 2008, 21:01     Daria Ага, будем считать с буфером приема разобрались ... Aug 17 2008, 11:13      zhevak О-хо-хо... Ну да ладно!
Даша, я предполагаю, ... Aug 17 2008, 14:49      rezident Цитата(Daria @ Aug 17 2008, 17:13) Запись... Aug 17 2008, 15:09       zhevak Цитата(rezident @ Aug 17 2008, 21:09) Изв... Aug 17 2008, 15:51        rezident Цитата(zhevak @ Aug 17 2008, 21:51) Не, н... Aug 17 2008, 15:56         zhevak Цитата(rezident @ Aug 17 2008, 21:56) Да ... Aug 17 2008, 16:38          Daria Да-а-а утром отправляю вопрос, иде себе спокойне... Aug 17 2008, 20:49           Daria здравствуйте снова. Такой вопрос - во время работ... Aug 19 2008, 17:42            rezident Цитата(Daria @ Aug 19 2008, 23:42) можно ... Aug 19 2008, 21:40             Daria Цитата(rezident @ Aug 20 2008, 01:40) А т... Aug 20 2008, 18:20              Daria Здравствуйте. rezident, по поводу примера буфера п... Aug 21 2008, 18:01               rezident Цитата(Daria @ Aug 22 2008, 00:01) для че... Aug 21 2008, 21:19                Daria Как всегда - большое спасибо! про выравниван... Aug 24 2008, 17:36                 Daria Здравствуйте снова.
Вот опять вопросы_
Делаю усред... Aug 29 2008, 18:53                  rezident Цитата(Daria @ Aug 30 2008, 00:53) Делаю ... Aug 29 2008, 20:16                   Daria Да знаю я, знаю, что долго сидеть в прерывании нех... Aug 30 2008, 18:33                    rezident Цитата(Daria @ Aug 31 2008, 00:33) Да зна... Aug 30 2008, 21:04                     Daria Цитата(rezident @ Aug 31 2008, 01:04) Ест... Aug 31 2008, 16:48                      rezident Цитата(Daria @ Aug 31 2008, 22:48) Нужно.... Aug 31 2008, 18:39                       Daria Цитата(rezident @ Aug 31 2008, 22:39) В п... Aug 31 2008, 20:29                        Daria Ну вот, отпуск кончился, пошли суровые будни
И в... Sep 12 2008, 18:04                         rezident Цитата(Daria @ Sep 13 2008, 00:04) Вот та... Sep 12 2008, 18:27                          Daria Цитата(rezident @ Sep 12 2008, 22:27)
re... Sep 18 2008, 13:34                           Daria Здравствуйте. Такие вопросы -
сейчас я прошиваю ... Sep 23 2008, 18:33                            rezident Цитата(Daria @ Sep 24 2008, 00:33) В даль... Sep 23 2008, 19:56                             Daria Ага, но мне, как пока неквалифицированному програм... Sep 23 2008, 20:12                              rezident Цитата(Daria @ Sep 24 2008, 02:12) Значит... Sep 23 2008, 20:47                               Daria Цитата(rezident @ Sep 24 2008, 00:47) Для... Sep 23 2008, 20:56                                rezident Цитата(Daria @ Sep 24 2008, 02:56) А UIF ... Sep 23 2008, 21:35                                Сергей Борщ Цитата(Daria @ Sep 23 2008, 23:56) Как-то... Sep 23 2008, 21:52                                 Daria Цитата(Сергей Борщ @ Sep 24 2008, 01:52) ... Sep 24 2008, 17:18                            Сергей Борщ Цитата(Daria @ Sep 23 2008, 21:33) мне ск... Sep 23 2008, 20:01                            LCD Цитата(Daria @ Sep 23 2008, 22:33) Не под... Sep 24 2008, 19:14                         MrYuran Цитата(Daria @ Sep 12 2008, 22:04) Как бы... Sep 13 2008, 10:53                          rezident Цитата(MrYuran @ Sep 13 2008, 16:53) И с ... Sep 13 2008, 16:48                           MrYuran Цитата(rezident @ Sep 13 2008, 20:48) А в... Sep 13 2008, 17:31                           Сергей Борщ Цитата(rezident @ Sep 13 2008, 19:48) А в... Sep 13 2008, 18:20                            rezident Цитата(MrYuran @ Sep 13 2008, 23:31) А во... Sep 13 2008, 20:13                             AHTOXA Цитата(rezident @ Sep 14 2008, 02:13) При... Sep 15 2008, 17:38 Kurt 2rezident: я восхищен силой вашего воображения )) Aug 13 2008, 04:41 _3m Цитата(Kurt @ Aug 13 2008, 08:41) 2rezide... Aug 13 2008, 06:34 rezident Я не вижу функции инициализации UART, но попробуйт... Sep 24 2008, 18:12 Daria Цитата(rezident @ Sep 24 2008, 22:12) Я н... Sep 25 2008, 18:43  rezident Цитата(Daria @ Sep 26 2008, 00:43) Ну, те... Sep 25 2008, 19:30   Daria Цитата(rezident @ Sep 25 2008, 23:30) Пок... Sep 26 2008, 15:21 VAI ЦитатаКварц, кстати, подходящий нашла у Murata - C... Sep 25 2008, 06:57   Daria Цитата(rezident @ Sep 30 2008, 00:23) Дел... Sep 30 2008, 19:00    rezident Цитата(Daria @ Oct 1 2008, 01:00) NData -... Sep 30 2008, 19:49     Daria Кодtypedef struct CharBuffer
{
unsigned char* Dat... Sep 30 2008, 20:26      rezident Цитата(Daria @ Oct 1 2008, 02:26) но так ... Sep 30 2008, 23:05       Daria Цитата(rezident @ Oct 1 2008, 03:05) Поче... Oct 1 2008, 18:23        rezident Цитата(Daria @ Oct 2 2008, 00:23) Да, но ... Oct 1 2008, 19:34         Daria Цитата(rezident @ Oct 1 2008, 23:34) Если... Oct 2 2008, 19:37 VAI Кстати, по уартам, я как-то выкладывал свои исходн... Oct 3 2008, 01:12 Daria Цитата(VAI @ Oct 3 2008, 05:12) Кстати, п... Oct 4 2008, 17:01  Daria Опять я теперь нужен еще буфер - для АЦП. посмот... Oct 5 2008, 15:42   Daria И еще Мне нужно обмениваться с двумя устройствам... Oct 5 2008, 19:35    Dog Pawlowa Цитата(Daria @ Oct 5 2008, 22:35) И еще ... Oct 6 2008, 06:04     Daria Цитата(Dog Pawlowa @ Oct 6 2008, 10:04) О... Oct 6 2008, 17:45      rezident Цитата(Daria @ Oct 6 2008, 23:45) одно ус... Oct 6 2008, 19:04       Daria Цитата(rezident @ Oct 6 2008, 23:04) Личн... Oct 7 2008, 17:09        rezident Цитата(Daria @ Oct 7 2008, 23:09) Ага, а ... Oct 7 2008, 17:41         Daria Цитата(rezident @ Oct 7 2008, 21:41) В IA... Oct 7 2008, 18:12          rezident Цитата(Daria @ Oct 8 2008, 00:12) Все же ... Oct 7 2008, 19:07           Daria Цитата(rezident @ Oct 7 2008, 23:07) Либо... Oct 10 2008, 20:23
3 страниц
1 2 3 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|