![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 20.04.2013
Сообщений: 6
|
![]()
Добрый день!
Нужно отредактировать и дополнить код, чтобы на сенсорном узле с микрофоном, который присоединен к компьютеру загорелся и мигал диод, если микрофон будет улавливать какой-нибудь звук. Программа компилируется, ошибок не выдаёт, но когда загружаю в микроконтроллер, диод не мигает. Не могу придумать, где ошибка ... #include "io430.h" #include "in430.h" //_NOP() #include "stdint.h" volatile uint16_t mic_data; volatile uint8_t min = 0; int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; ADC10AE0 |= 0x01; //(enable A0) P2.0 ADC option select P1DIR |= 0x01;//Set P1.0 to output direction BCSCTL1 = DIVA_3; // ACLK = 1.5 kHz BCSCTL3 = LFXT1S_2; // Set VLOCLK (12 kHz) ADC10CTL1 = INCH_0 + ADC10DIV_3; // A0 ADC10CTL0=SREF_1 + ADC10SHT_3 + REFON + ADC10ON +ADC10IE; if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) { while(1); // If calibration constants erased // do not load, trap CPU!! } DCOCTL = CALDCO_1MHZ; // Set DCO to 1 MHz for (;; ) { } //return 0; } #pragma vector=ADC10_VECTOR __interrupt void ADC10ISR(void) { if (min <= 60) mic_data = ADC10MEM; else _NOP(); if (mic_data > 512) P1OUT |= 0x01; // Set P1.0 LED on else P1OUT &= ~0x01; // Clear P1.0 LED off ADC10CTL0 |= ENC + ADC10SC; // Sampling/Conversion start } |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 639
|
![]()
Вы в каждом разделе будете тему создавать? Спамер что ли?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]()
Что за контроллер? MSP какой-нибудь?
И что происходит при прерывании? Что в ADC10MEM? Upd. А почему запуск АЦП происходит после считывания данных из ADC10MEM? Upd. 2 //А направление портов не надо конфигурировать перед тем, как светодиод зажигать? Так, этот вопрос пока снимается, там вроде выше есть это дело, я проглядел. Upd. 3 И вообще, почему светодиод должен мигать при таком коде? Не пойму.. Кстати, прерывание-то это вообще произойдет? Учитывая, где происходит запуск АЦП, я не уверен..
Μολὼν λαβέ
Последний раз редактировалось alexander13; 20.04.2013 в 13:24. |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 20.04.2013
Сообщений: 6
|
![]()
нет, просто не знала в какой раздел лучше разместить тему.
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 20.04.2013
Сообщений: 6
|
![]()
да, микроконтроллер MSP430.
ADC10MEM - по задумке должно быть так: если микрофон улавливает звук, то в память заполняется, и если в память что-то поступает, то диод реагирует и начинает мигать. //про направление портов честно говоря я не знаю, я только всё это начала изучать ... потому что, если порог шума будет превышать заданный - 512, то АЦП только тогда начнёт срабатывать ... Последний раз редактировалось Irin_a; 20.04.2013 в 13:30. |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]() Цитата:
А зачем Код:
Есть какой-то порог по уровню звука или что? И совсем непонятно зачем Код:
Код:
Upd. И это все при условии, что у Вас там выше все сконфигурировано правильно.. Мне читать даташит и проверять ну очень не хочется. Upd. 2 Хорошо, вопрос по порогу шума снимается. Но все остальные комментарии в силе. Кстати, Вы все еще не ответили, что там по факту в регистре ADC10MEM (Вы можете это посмотреть? Отладчик есть?) и происходит ли вообще прерывание?
Μολὼν λαβέ
Последний раз редактировалось alexander13; 20.04.2013 в 13:37. |
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 20.04.2013
Сообщений: 6
|
![]()
ADC10MEM - изначально там не должно быть ничего.
я сейчас пробую переделать код ... диод просто горит, но не мигает Последний раз редактировалось Irin_a; 20.04.2013 в 13:50. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]()
Может он просто очень часто мигает?
Задержку Вы добавили?
Μολὼν λαβέ
|
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 20.04.2013
Сообщений: 6
|
![]()
нет, нет, не мигает.
там же должна быть спец. функция для задержки? |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]()
А Вы как это определяете? На глаз? Очень интересно...
Вам что, в гугл совсем лень залезть? Функция __delay_cycles(). Как пользоваться ей разберетесь сами, надеюсь?
Μολὼν λαβέ
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PCI FDD программирование микроконтроллера | scriptolog | Компьютерное железо | 6 | 25.11.2012 20:08 |
Программирование микроконтроллера | ros.pro | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 15 | 26.05.2012 23:45 |
программирование микроконтроллера мк51 | Nulled_ | Фриланс | 1 | 16.10.2009 21:02 |
программирование микроконтроллера МК51 | Nulled_ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 11.10.2009 13:25 |