реклама на сайте
подробности

 
 
17 страниц V  « < 9 10 11 12 13 > »   
Reply to this topicStart new topic
> Микроконтроллеры для начинающих, AVR, PIC, FUJITSU
SKov
сообщение Mar 22 2011, 16:25
Сообщение #151


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Claw @ Mar 22 2011, 18:39) *
А зачем нужен предварительный делитель?

Вам надо почитать какую-нибудь литературу на русском.
Суда по вашим вопросам, читать даташиты на английском пока рано.
Посмотрите, например, вот это.
Прикрепленные файлы
Прикрепленный файл  PIC_________________.rar ( 2.26 мегабайт ) Кол-во скачиваний: 95
 
Go to the top of the page
 
+Quote Post
Claw
сообщение Mar 26 2011, 21:03
Сообщение #152


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 13-11-10
Из: Могилёв
Пользователь №: 60 868



А если мы,к примеру, запрограммировали порт B на вход,там получается в битах стоят единицы, а когда мы нажимаем кнопку, подключенную к этому входу, что изменяется?в этот бит записывается 0?просто непонятно как проверить состояние входов при нажатой кнопке 05.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 26 2011, 21:30
Сообщение #153


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Claw @ Mar 26 2011, 23:03) *
просто непонятно как проверить состояние входов при нажатой кнопке

Прочитать порт.
Можно читать периодически, по прерыванию от таймера, например. Сравнивать с прошлым, запомненным. Находить изменение, и так определять кнопку.
Можно настроить прерывание по изменению состояния порта, и по этому прерыванию прочитать новое состояние.
Go to the top of the page
 
+Quote Post
Claw
сообщение Mar 29 2011, 14:09
Сообщение #154


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 13-11-10
Из: Могилёв
Пользователь №: 60 868



А какой командой можно проверить весь байт на наличие к примеру 1?что-то наподобие команды BTFSS f,b?
Go to the top of the page
 
+Quote Post
Марк_Я
сообщение Mar 30 2011, 10:51
Сообщение #155


Частый гость
**

Группа: Свой
Сообщений: 178
Регистрация: 19-09-07
Из: М.О. г.Фрязино
Пользователь №: 30 656



XOR - исключающее ИЛИ
При совпадении разряда переменной и маски в этом разряде результата будет 0, а при несовпадении - 1
Go to the top of the page
 
+Quote Post
Claw
сообщение Apr 19 2011, 12:30
Сообщение #156


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 13-11-10
Из: Могилёв
Пользователь №: 60 868



можно сделать так, чтобы команда btfss f,b(проверяет бит b в регистре f и пропускает следующиую команду, если результат 1) пропускала при выполнении условия не одну команду, а несколько,заданное количество?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 19 2011, 13:01
Сообщение #157


Гуру
******

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



QUOTE (Claw @ Apr 19 2011, 15:30) *
можно сделать так, чтобы команда btfss f,b(проверяет бит b в регистре f и пропускает следующиую команду, если результат 1) пропускала при выполнении условия не одну команду, а несколько,заданное количество?
Нет, нельзя. Но можно использовать команду btfsc f,b которая будет пропускать следующую команду goto, которая, в свою очередь, "пропускает не одну команду, а несколько,заданное количество".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Claw
сообщение Apr 19 2011, 20:10
Сообщение #158


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 13-11-10
Из: Могилёв
Пользователь №: 60 868



MOVLW B'11111111'
MOVWF TRISC;
....
....
....

MOVLW B'11111111'
XORWF PORTC,0
BTFSC STATUS,Z
NOP
BSF PORTB,0


Последний кусочек кода делает:
1.пересылает константу в аккумулятор
2.сравнивает константу с состоянием битов в порте С,сохраняет результат в аккумуляторе и меняет(не меняет) состояние флага Z
3.если значение флага Z=0(нашлось различие в битах между сравниваемыми регистрами),то устанавливаем нулевой бит в порте B и далее по кругу,если нет,то задержка
Я правильно понимаю?Просто программа у меня по "моей логике" не работает,значит я понимаю может быть не совсем правильно или совсем неправильно...помогите blush.gif
Go to the top of the page
 
+Quote Post
нечитатель
сообщение Apr 20 2011, 01:41
Сообщение #159


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



Цитата(Claw @ Apr 20 2011, 00:10) *
3.если значение флага Z=0(нашлось различие в битах между сравниваемыми регистрами),то устанавливаем нулевой бит в порте B
... а если Z=1, то ничего не делаем, а потом точно так же устанавливаем нулевой бит в порте B. Просто задержка, да.
Очень маленькая такая задержечка... чем наблюдается она, как выяснено "не работает?"
Цитата
и далее по кругу
прописать "по кругу" * надо в программе, а не на форуме.

* любая программа должна так или иначе бесконечно зацикливаться в любом случае.
(не спящий) процессор всегда выполняет какую-то инструкцию; "всё сделать и остановиться" нельзя.
это мало ли вдруг.

Сообщение отредактировал нечитатель - Apr 20 2011, 02:00
Go to the top of the page
 
+Quote Post
Claw
сообщение Apr 26 2011, 13:56
Сообщение #160


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 13-11-10
Из: Могилёв
Пользователь №: 60 868



а как реализуется задержка с помощью tmr0?может есть какие-нибудь примеры на асме?
Go to the top of the page
 
+Quote Post
tzirulnicov
сообщение Jul 19 2011, 18:33
Сообщение #161


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 28-11-10
Пользователь №: 61 234



MCC18 бесплатная версия. Начинаю изучать Си под пики. Не понимаю как пользоваться строковыми функциями и ф-ями вида memst().

include "p18f14k50.h"
#include "string.h"
unsigned char RS232_Out_Data[15]="45a0";
void main(void)
{
memset(RS232_Out_Data, '\0', 15);
strcpy(RS232_Out_Data,"543");
RS232_Out_Data[0]='4';
RS232_Out_Data[1]='5';
RS232_Out_Data[0]='\0';
}

- почему memset вначале забивает все нулями, а потом снова возвращает все как было? Почему strcpy ничего не копирует в RS232_Out_Data ? Посимвольное копирование (4,5,\0) - работает нормально.
Go to the top of the page
 
+Quote Post
Qb1024
сообщение Jul 24 2011, 10:48
Сообщение #162





Группа: Участник
Сообщений: 13
Регистрация: 29-07-08
Пользователь №: 39 288



Хочу начать знакомится с контролерами, уже есть ATmega8A, всвязи с чем возникли вопросы:
1) Можно ли ипользовать программатор Громова для прошивки?
2) Где найти уроки со схемами и написанием кода для мигания светодиодами и более сложными задачами?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 25 2011, 04:19
Сообщение #163


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Qb1024 @ Jul 24 2011, 14:48) *
Хочу начать знакомится с контролерами, уже есть ATmega8A, всвязи с чем возникли вопросы:
1) Можно ли ипользовать программатор Громова для прошивки?
2) Где найти уроки со схемами и написанием кода для мигания светодиодами и более сложными задачами?

В книгах например:

Вольфганг Трамперт "AVR-RISC микроконтроллеры"
Джон Мортан " Микроконтроллеры AVR"

Наберите в инете Самоучитель по AVR


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
paskal
сообщение Sep 23 2011, 18:07
Сообщение #164


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Цитата(Qb1024 @ Jul 24 2011, 14:48) *
1) Можно ли ипользовать программатор Громова для прошивки?

Есть знакомые, которые использовали программатор Громова для LPT и пожгли порт этим программатором. Соединять напрямую пины LPT и целевое устройство это слишком рискованно. Надо чтоб хоть буфер был как у байтбластера. Для нормальной работы можно пользоваться байтбластер + софт AVREAL.
Go to the top of the page
 
+Quote Post
mig-11101
сообщение Nov 12 2011, 07:52
Сообщение #165


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 26-09-10
Из: Riga, Latvia
Пользователь №: 59 736



Цитата(Qb1024 @ Jul 24 2011, 13:48) *
Хочу начать знакомится с контролерами, уже есть ATmega8A, всвязи с чем возникли вопросы:
1) Можно ли ипользовать программатор Громова для прошивки?
2) Где найти уроки со схемами и написанием кода для мигания светодиодами и более сложными задачами?


1. Можно, но имхо лучше попробуйте через COM порт. http://easyelectronics.ru/avr-shag-pervyj-programmator.html Вот к примеру - элементарное решение через COM.
2. Для ассамблера есть внятные уроки здесь - http://radiokot.ru/start/mcu_fpga/avr/. Там уроки не для atmega8a, но суть это не меняет, проблем не должно возникнуть.

Сообщение отредактировал mig-11101 - Nov 12 2011, 07:55
Go to the top of the page
 
+Quote Post

17 страниц V  « < 9 10 11 12 13 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016