roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 34, 35, 36, 37, 38, 39, 40 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 05 июн 2008, 11:12 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
loid писал(а):
Считаю чем проще - тем лучше.

Да.
loid писал(а):
Что тут ещё можно нагромоздить, да и зачем. :roll:

А зачем транзистор прилепили ???

loid писал(а):
Излучатель и приёмник это оптопара из мыши.

Вот схема ПРОСТАЯ - резистор 4.7 - 10 кОм обычно. В зависимости от приемника резистор можно поставить в питание ли бо в цепь земли.


Вложения:
roll.JPG
roll.JPG [ 13.16 КиБ | Просмотров: 3026 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 05 июн 2008, 15:41 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
AVR, по поводу резистора - хорошая идея, как то в голову не пришла. Попробую этот вариант. Напрямую с приёмника пробовал брать сигнал - напряжение маленькое, не хватает чтобы единичку включить.


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

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
Пока не делал схемку описаную AVR, пока на транзисторе работает. Но всё же не погу понять почему при повышении оборотов чип не выполняет определённую строчку программы. Вот ссысл программы:
заводим переменную tmr, которая накапливает значения по мере работы программы.
заводим переменную polr, которая запоминает значение датчика на колесе (0 или 1).
---начало программы---
переменая polr запоминает значение датчика на колесе PINC.0
вращаем колесо
---старт цикла---
tmr++ счетчик прибавляет единицу с каждым проходом цикла
if(polr!=PINC.0) если значения polr и PINC.0 не равны, то polr запонимает значение в этот момент на PINC.0; сбрасываем таймер
if (tmr>8000) если значение таймера превышает 8000 включаем светодиод иначе выключаем его
переходим к началу цикла

Код:
tmr=0;
polr=PINC.0;
while(1){
tmr++;
if(polr!=PINC.0){polr=PINC.0; tmr=0;PORTA.5=1;} else{PORTA.5=0;}
if(tmr>8000){PORTA.4=1;} else{PORTA.4=0;}
}


На осцилографе смотрел сигналы приходящие на микроконтороллер. Они отчетливо квадратные (цифровые). Сначала думаю что при повышении оборотов напряжение немного падает и его не хватает чтобу включить "единичку". Но всё оказалось нормально, при логическом 0 - напряжение нуль (или очень близко к нему), при логической 1- напряжение 5вольт (или близко к этому значению).
Почему так происходит не могу понять. Пока ковыряю.

Добавлено спустя 32 минуты 27 секунд:
Нашел причину, проблема вранзисторной обвязке. Первые показания осцилографа не внимательно посмотрел, оказалось что при больших оборотах постоянно включена "единичка". ТАм правда тоже квадратные импульсы, но всё же они высоки и дают переключиться на "нуль".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 08 июн 2008, 11:26 
Может ли ктонибудь скинуть инфы по АЦП на Атмега8?Желательно примеры на СИ. В инете долго искал, нечего понятного не нашел, везде восновном блоксхемы. Буду весьма благодарен.


Вернуться к началу
  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 08 июн 2008, 14:31 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
значит плохо искал!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллеры начинающим - общие вопросы
СообщениеДобавлено: 08 июн 2008, 19:22 
Наверно странная у меня просьба и немного необычная. Но тем не менее хотелось бы спросить, может ли кто нибудь мне обьяснить в чем моя ошибка или даже не ошибка.
Вобщем мне нужно было написать учебную программу для микроконтроллера PIC18F452 (Отладочная плата PICDEM2PLUS, Mplab v7.20, C#) которая при нажатии на кнопку RB0 на плате, зажигала светодиод RB1, программа рабочая, светодиод исправно зажигается)
Но я не понимаю почему МК уходит на прерывание при условии
Код:
if (PORTBbits.RB0 == 0)   
хотя по моему он должен уходить при
Код:
if (PORTBbits.RB0 == 1)   
вот собственно и весь вопрос(просто прога учебная и будет использоваться для демонстрации работы МК будушим поколениям, поэтому надо все "разжевать")
Код:
/*
MCU: PIC18F452
Lang: C
Comp: MpLAB IDE v7.20
Программа обработки внешних прерываний (external interrupt)
08/07/2008
*/

#include

#pragma config OSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF

void main (void); // Обьявляем прототип функции main
void InterruptHandlerHigh (void); // Обьявляем прототип функции InterruptHandlerHigh

#pragma interrupt InterruptHandlerHigh // Точка перехода по прерыванию
#pragma code InterruptVectorHigh = 0x8 // Вектор прерывания
void InterruptHandlerHigh(void) // Функция обработки прерывания
{
PORTBbits.RB1 = 1; // Зажечь диод
INTCONbits.INT0IF = 0; // очистка флага прерывания
}
#pragma code

void main()
{
TRISBbits.TRISB1 = 0; // 0 - Out направление сигнала
TRISBbits.TRISB0 = 1; // 1 - In направление сигнала
PORTBbits.RB1 = 0; // инициалиация: диод выключен
INTCON2bits.INTEDG0 = 1; // 1 - прерывание по переднему фронту сигнала
INTCONbits.GIEH = 1; // 1 - разрешить прерывания с высоким приоритетом
INTCONbits.INT0IE = 1; // 1 - разрешить внешние прерывания сo входа RB0

if (PORTBbits.RB0 == 0) // Условие возникновения прерывания
{
_asm
goto InterruptHandlerHigh //Переходим в функцию обработки прерывания
_endasm
}
}

И как вобще на ваш взгляд эта прога, просто это моя первая в жизни программа на МК, так что сильно не пинайте)


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Хех... тут AVR-щики в основном тусуютсо... :D

_________________
Домашняя робототехника - RoboZone.SU
горючее...- пиво... много... :)


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
TITO писал(а):
как вобще на ваш взгляд эта прога, просто это моя первая в жизни программа на МК, так что сильно не пинайте)


В не поняли смысл прерываний - это АППАРАТНЫЙ процесс !

Смотрите Русскуая документация по программированию PIC - http://avr123.nm.ru/09.htm

Смотрите Пример AN696 на PIC18 в PROTEUS - http://oPROTEUS.narod.ru/

Смотрите Книги ! и в частности книгу ШПАКа - http://avr123.nm.ru/


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

Зарегистрирован: 05 июн 2008, 02:34
Сообщения: 2
Откуда: Питер
Я тата новенький- да и вообще в этой сфере.
Собрал програматор для ПИКОВ с сайта http://www.pcports.ru/
но ПОНИПРОГ выдаёт- Тест ошибка!
Подскажите пожалусто с чем это может быть связано?
(програмировал с ноута через USB to COM)


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Максим-БМВ08 писал(а):
програмировал с ноута через USB to COM

Возможно этим переходником вызвано.


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

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
С переходниками типа usb/com или usb/lpt программаторы как правило работать отказываются, хорошая статья вот здесь была http://www.pcports.ru/articles/lpt11.php


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

Зарегистрирован: 05 июн 2008, 02:34
Сообщения: 2
Откуда: Питер
Спасибо большое за ссылку- это многое объясняет.
Завтра попробую найти в институте комп с настоящим COM портом.
(Надеюсь, что получится.)


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

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
Что то не могу сообразить, до этого не использовал символьные переменные. Мне нужно проверять условия с символьными переменными, но где то ошибка, возможно где то в кавычках, многое перепробовал вараинтов.
Код:
int char x;
x='yes';

if(x="yes"){определённый код программы}


Как видите всё довольно просто, ошибку выдаёт в строке где оператор IF


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

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
а почему в одном случае кавычки одинарные ставишь, а в другом - двойные? =)
В СИ - это разные типы данных. Почитай в инете про сишник.

_________________
злой полицейский


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

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
На всякий случай :) Я ж говорю, СИ мало знаю так сказать в процессе обучения. В общем на Басике это выглядело так:
Код:
x$="yes"
if x$="yes" then  код программы


как иначе на СИ написать? Может Эд подскажет, он вроде и там и сям знает по коду.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 34, 35, 36, 37, 38, 39, 40 ... 144  След.

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


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

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


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

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