roboforum.ru

Технический форум по робототехнике.
Текущее время: 05 ноя 2024, 02:35

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 65, 66, 67, 68, 69, 70, 71 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 13 апр 2009, 17:58 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
наверно во входы с подтяжкой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 13 апр 2009, 23:19 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
я так и думал :Yahoo!:

Добавлено спустя 2 минуты 37 секунд:
PS
не нашёл темы электроника общие вопросы
роботоспособна ли такая схема-


Вложения:
Комментарий к файлу: Схема
aasf.JPG
aasf.JPG [ 36.92 КиБ | Просмотров: 2050 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 21 апр 2009, 21:57 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
Тихо сам с собою...
Разобрался со СПИ и ведущий и ведомый работают как надо :) но есть одно НО - Евстифеев пишет что вовремя предачи от мастера к слейву паралельно идёт передача от слейва к мастеру в протеусе это значение 255(от терминала в режиме слейв) как сделать так чтобы этот байт(ведомый -> ведущий ) задавался в програме ?
Пробовал в програме ведомого ставить SPDR = 0xAA; а в прерывании от спи ведущего перед отправкой следующего байта считывать SPDR но там опять таки 0xFF
Даже авр не ответит ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 26 апр 2009, 19:57 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
опять трабла, не работает ни в протеусе ни в железе АЦП. немогу найти в чем проблема (ацп никогда не пользовал еще)
внешне на проце AVCC и AGND соеденены с питаловом и землей через дроссель с кондером. ползунок переменного резистора идет на ADC7 ногу.
Код:
#include <mega32.h>

#define LED1 PORTC.5
#define LED2 PORTC.6

#define FIRST_ADC_INPUT 7
#define LAST_ADC_INPUT 7
#define ADC_VREF_TYPE 0x00                             

unsigned int adc_data;
void AVR_INIT(void);

short divider = 0;


// External IRQ 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here

}

// TIMER 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x05;
// Place your code here

if((adc_data)&(0x10)) LED1 = 1;
else LED1 = 0;

divider++;
if(divider>adc_data)   // ************** вот тут в зависимости от показаний АЦП должна частота меандра на LED2 менятся
{
    divider = 0;
    LED2 =(!(LED2));
}

}

// ADC interrupt service routine
// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
// Read the AD conversion result
adc_data=ADCH;
// Select next ADC input
ADMUX=(FIRST_ADC_INPUT|ADC_VREF_TYPE)+7;
// Start the AD conversion
ADCSRA|=0x40;
}

// Declare your global variables here

void main(void)
{
AVR_INIT();
LED2 = !!(1==1);
while (1)
      {
      // Place your code here

      };
}       

void AVR_INIT(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0xFF;

// Port C initialization
// Func7=In Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=0 State5=0 State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x60;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x05;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
// INT2: Off
GICR|=0x40;
MCUCR=0x03;
MCUCSR=0x00;
GIFR=0x40;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=FIRST_ADC_INPUT|ADC_VREF_TYPE;
ADCSRA=0xCF;

// Global enable interrupts
#asm("sei") 
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 26 апр 2009, 20:17 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Советую выкинуть весь код не относящийся к АЦП и найти в чем дело. АЦП матером настраивал ? Если нет - то настрой мастером СРАЗУ заработает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 26 апр 2009, 21:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
Мастером, только переделал чтобы не сканировал все ноги а только с седьмой цифровал. Переделывал вручную.
ADMUX=(FIRST_ADC_INPUT|ADC_VREF_TYPE)+7;
вот эту строчку неправильно сделал. должно быть
ADMUX=(FIRST_ADC_INPUT|ADC_VREF_TYPE);
и все заработало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 26 апр 2009, 22:07 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Иногда бывает полезно всопользоваться мастером ;)

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 26 апр 2009, 23:48 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
1) Как повесить на прерывание вызов функции в WinAVR? Т.е. как в программе указать что эта функция будет вызыватся при какомто прерывании?
(в CVAVR вот так "interrupt [ADC_INT] void adc_isr(void){....}"? а как в WinAVR)
2) Что можно почитать по WinAVR чтобы небыло таких вопросов? И есть ли какойнибудь аналог редактора WinAVR с интерактивной справкой по F1, как в CVAVR?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 01:59 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
1.
Код:
#include <avr/io.h>
#include <avr/interrupt.h>
ISR(ADC_vect)
{
// ...............
}

2. Google => avr-libc manual

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 09:30 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
blindman писал(а):
2. Google => avr-libc manual
Ну ты послал ! Всеж у него на ПК - C:\WinAVR\doc\avr-libc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 09:35 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
Спасибо. Вечерком почитаю. :good:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 09:36 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
avr123.nm.ru писал(а):
Всеж у него на ПК - C:\WinAVR\doc\avr-libc
Понятия не имею что и где у него на ПК

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 10:42 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
executer писал(а):
Есть ли какойнибудь аналог редактора WinAVR с интерактивной справкой по F1, как в CVAVR?


Я так понимаю что ВинАВР это просто компилятор отрабатываюший комманды из МАКЕ файла? Т.е. код можно хоть в блокноте писать а потом через коммандную сторку запускать МАКЕ (не удобно конечно)?
Нет ли альтернатив редактору из ВинАВР, чтонибудь более специализированое на микроконтроллерном СИ (но с синтаксисом ВинАВР)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 11:35 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Смысл ВинАВР в том, что это просто сборка компилятора gcc, который стремится быть как можно менее "микроконтроллерным" - ведь появился он для "больших" процессоров типа х86, а уже потом был портирован для разных архитектур МК. Да, и смысл С - в том, чтобы "отвязать" программиста от микроконтроллера. А редактор (вообще-то, даже IDE), специализированный для С/С++ - ну например CodeBlocks (Eclipse рекомендовать не стану, он большой и толстый, говорят может все, но никто не говорит как его это все заставить делать :) ).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 27 апр 2009, 11:51 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
О, в соселней теме (viewtopic.php?f=2&t=5106&start=30) тоже ссфлвлись на Эклипс, но не скащали что он большой. Попробую КодеБлокс для начала. Спасибо.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 65, 66, 67, 68, 69, 70, 71 ... 144  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO