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

 
 
8 страниц V  « < 4 5 6 7 8 >  
Reply to this topicStart new topic
> жутко глючит мк, помогите пожалуйста
_Ivan_33
сообщение May 1 2008, 10:06
Сообщение #76


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



я его сегодня скачал!!! и тем более я пока начинающий - еще не знаю что к чему

нашел этот регистр в ДШ...


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 10:10
Сообщение #77


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

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(_Ivan_33 @ May 1 2008, 17:59) *
я его сегодня скачал!!! и тем более я пока начинающий - еще не знаю что к чему


Только сегодня?
Понятно, что начинающий, я ж не против. Просто Вам потребуется усвоить более-менее приличный объем информации. Хорошо было бы иметь под рукой знающего человека, чтобы общаться с ним вживую. То есть более оперативно решать вопросы. Если такого человека нет, то придется грызть все самому, по книжкам. \
bb-offtopic.gif
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 10:12
Сообщение #78


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. - вот похоже я пошел правильным путем!


а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...

ну ERRATa я скачал раньше!


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 10:28
Сообщение #79


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(_Ivan_33 @ May 1 2008, 17:12) *
Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. -
а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...

Ну на чистом англицком и у Евстифеева на чистом русском написано.
Таким образом ты организовал прерывание внешнее или програмное, если изменить этот бит порта.
Читать внимательнее!!! Все поймешь.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 10:35
Сообщение #80


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

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(_Ivan_33 @ May 1 2008, 18:12) *
Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. - вот похоже я пошел правильным путем!
а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...

ну ERRATa я скачал раньше!


Есть конечно, команды sbi и cbi, позволяющие обращаться к битам регистров индивидуально. Другое дело, что только к I/O регистрам. GIMSK к ним не относится.

можно было бы сделать так:
ldi r16, 1<<TOIE1
out TIMSK,r16

Но при этом изменятся биты, которые мы не хотели трогать

В итоге приходится делать так - для установки бита в 1:
in r16,TIMSK
andi r16,1<<TOIE1
out TIMSK,r16

на С:
TIMSK|=(1<<TOIE1); - установка в 1

TIMSK&=!(1<<TOIE1); - сброс в 0

Регистры и биты взяты произвольные - для примера

Сообщение отредактировал tazik - May 1 2008, 10:37
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 10:41
Сообщение #81


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



все... поехал в сад... вечером буду...

Сообщение отредактировал _Ivan_33 - May 1 2008, 10:44


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 10:48
Сообщение #82


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

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(_Ivan_33 @ May 1 2008, 18:41) *
ну а почему записывается в регистры именно так а не как в регистры порта?

Архитектура контроллера такая.
АВРСтудио под рукой есть? Попробуйте сами.

The CBI and SBI instructions work with registers 0x00 to 0x1F only.

Цитата(_Ivan_33 @ May 1 2008, 18:41) *
все... поехал в сад... вечером буду...


Нормально. Удачи

Сообщение отредактировал tazik - May 1 2008, 10:47
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 17:10
Сообщение #83


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



#include <tiny2313.h>
#include <delay.h>
void main(void) {
#asm("sei");
DDRB=2;
GIMSK|=(1<<PCIE);
PCMSK|=(1<<PCINT7);}
void interrupt [PCINT7](void) {
PORTB=2;} - в чем ошибки?? в кодевижне пишет что PCIE PCINT7 - неизвестные символы...


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 17:19
Сообщение #84


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



#include <tiny2313.h>

// Pin change 0-7 interrupt service routine
interrupt [PCINT] void pin_change_isr0(void)
{
// Place your code here

}

Вот что пишет коде визард кодвижна.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 17:50
Сообщение #85


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



а мне подсказали что исправить на номера битов это все...
другой вопрос ... типа у меня в программе
if (a==0||a==17) {function1(2);
function1(4);
function1(8);
function1(16);};


и так далее .... а мне нужно заменить функцию на прерывание и чтоб кусок кода который будет выполняться был от разных переменных - в данном случае - 2,4,8,16


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 18:12
Сообщение #86


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(_Ivan_33 @ May 2 2008, 00:50) *
а мне подсказали что исправить на номера битов это все...
другой вопрос ... типа у меня в программе
if (a==0||a==17) {function1(2);
function1(4);
function1(8);
function1(16);};
и так далее .... а мне нужно заменить функцию на прерывание и чтоб кусок кода который будет выполняться был от разных переменных - в данном случае - 2,4,8,16

Честно, не знаю, да и не понятно что ты хочешь.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 18:26
Сообщение #87


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



ну вообщем мы объявили функцию... там выполняется кусок кода относительно переменной... в этом коде это и написано ...


а мне нужно чтоб после объявления функции обработки прерывания в общем виде потом в главной функции ставилось уже обработчик прерывания но относительно какого либо значения переменной


понимаю что бредово написал так как прерывания идут обособленно от функции...


--------------------
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 2 2008, 08:09
Сообщение #88


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



switch (a)
{
case 0 : .... break; // разрешаем нужное прерывание и ждем или программно вызывем его
case 17: .... break; //то-же самое
}
Значениям а лучше дать осмысленные названия через ENUM.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 7 2008, 15:32
Сообщение #89


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



кароче мне объяснили как сделать это.... но вопрос стоит - использовать счетчик или delay_ms () для подсчета времени... так ли это принципиально и если что предстоит исчитывать периоды для плавного загорание лампочки...


--------------------
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 8 2008, 17:59
Сообщение #90


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



начал изучать счетчики - вопрос: как записать и куда записать значение при котором счетчик должен отреагировать? т.е. конечное значение счета...


--------------------
Go to the top of the page
 
+Quote Post

8 страниц V  « < 4 5 6 7 8 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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