Отговори на тема  [ 143 мнения ]  Отиди на страница Предишна  1 ... 5, 6, 7, 8, 9, 10  Следваща
:: ВЪПРОСИТЕ НА DARKSHY :: 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
darkshy написа:
И това дето казахте за прекъсването го направих така:
Код:
unsigned int chk=0;

void prekasvane() {
chk=1;
}

void main() {
...
while(1) {
if(chk)
{
printf(...);
chk=0;
}
}
}


, но не става и протеуса ми дава нещо за стека (не помня какво беше). :)


Добре, преместил си код от асинхронна event driven нишка в основната нишка. Слошил си флаг, chk, който манипулираш и в двете нишки. Първо трябва да обявиш променливата chk като volatile. За да няма недоумения след оптимизацията.
Второ, когато я манипулираш в по-ниско приоритетната нишка(основната) трябва да забраняваш прекъсванията. Нещо такова:
Код:
...
Disable_IRQ();
chk = 0;
Enable_IRQ();
...

Говорим принципно. Конкретната реализация може да си има някакви особености.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Чет Мар 25, 2010 12:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
volatile unsigned int chk=0;


Чет Мар 25, 2010 1:05 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
еми разбрах ви, но пак нестава:
Код:
#include "main.h"
#define d1 PIN_B6
#define d2 PIN_B7

unsigned int32 in=0;
unsigned int32 out=0;
volatile unsigned int chk=0;
char tmpc;

#int_RDA
void  RDA_isr(void)
{
   disable_interrupts(GLOBAL);
   chk=1;
   enable_interrupts(GLOBAL);
}

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_tris_a(0b00000101);
   set_tris_b(0b01000011);
   port_b_pullups(FALSE);
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   
   while(1)
   {
   
      if(chk==1)
      {
         tmpc=getc();
         if(tmpc=='d')
         {
            in=0;
            out=0;
         }
         else if(tmpc=='g')
         {
            printf("-%lu-%lu-\r\n",out,in);
         }
         disable_interrupts(GLOBAL);
         chk=0;
         enable_interrupts(GLOBAL);
      }
     
      if((!input(d1)||!input(d2)) || (!input(d1)&&!input(d2)))
      {
         delay_us(500);
         if(!input(d1)||!input(d2))
         {
            if(!input(d1))
               out+=1;
            if(!input(d2))
               in+=1;
            if(!input(d1)&&!input(d2))
            {
               out+=1;
               in+=1;
            }
            delay_ms(1000);
         }
      }
   
   }

}


Прикачени файлове:
typa_rabota.JPG
typa_rabota.JPG [ 275.76 KiB | Прегледано 1488 пъти ]

_________________
Ангел Димитров 95
Чет Мар 25, 2010 11:24 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Когато в dealextreme и ebay пише FREE SHIPING наистина ли до нашата родина е безплатен транспорта? или има някой лев отгоре?
И за това: http://www.dealextreme.com/details.dx/sku.24512 ще трябва ли да ходим с баща ми до митници и простотии? :)
Той вика, че - да! :evil:
Аз даже незнаех досега, че има такова нещо. Мислех, че пристига директно до вратата на жилището ти... :)

_________________
Ангел Димитров 95


Пет Мар 26, 2010 12:01 am
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Сря Яну 24, 2007 11:00 pm
Мнения: 158
Мнение 
абе дребен фани чети даже тука е писано ХОДИ СЕ ДО МИТНИЦА ЗА НАД 15 ЕВРО АКО ИДВА ОТ ИЗВЪН Е.С. за 3 долара няма да ходите, освен ако не си поръчал 7 броя. И хвани и чети в сайта пише за шипинга!


Пет Мар 26, 2010 12:29 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
разбрах. прочетох го това за 15те евро но не ги разбирам тези митници... мислех, че пратката утива там. :)

_________________
Ангел Димитров 95


Пет Мар 26, 2010 12:37 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение 
Изчети цялата тази тема http://hardwarebg.com/forum/showthread.php?t=128106
Тези устройства не винаги работят.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Мар 26, 2010 12:42 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
darkshy написа:
еми разбрах ви, но пак нестава:

Не си разбрал много.

darkshy написа:
Код:
void  RDA_isr(void)
{
   disable_interrupts(GLOBAL);
   chk=1;
   enable_interrupts(GLOBAL);
}

Това е нишката с по-висок приоритет. Няма нужда да забраняваш/разрешаваш тук прекъсванията.
И тези препоръки не бяха за грешката с която те наплюва Proteus-a. За нея пикоборците да кажат.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пет Мар 26, 2010 1:33 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Я кажете сега. Може ли USB BLUETOOTH за комп или модул от лаптоп да ползвам за блуутут рс232 модул с пик? За да знам да поръчвам ли това:
http://cgi.ebay.com/Bluetooth-serial-co ... 335b86e11c

_________________
Ангел Димитров 95


Пет Мар 26, 2010 11:40 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Какво се пише в printf-a за да се изтрие екрана на хипертерминала. Видях, че байта трябва да е FF (new page), но не намерих из нета след наклонената черта какво се пише. :?

_________________
Ангел Димитров 95


Съб Мар 27, 2010 3:04 am
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
последователността за CLR SCREEN за hyper terminal е :

putchar ( 0x1b );
putchar ( '[' );
putchar ( '2' );
putchar ( 'J' );


Съб Мар 27, 2010 12:24 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Защо тези от PayPal ми ограничиха акаунта и сега изкат да докажа адреса ми?
Как да го докажа?

Цитат:
Why is my account access limited?

Your account access has been limited for the following reason(s):
#

Mar 28, 2010: A recent review of your account determined that we require some additional information from you in order to provide you with secure service.

(Your case ID for this reason is PP-927-185-798.)
#

Mar 28, 2010: Our system requires further account verification.

(Your case ID for this reason is PP-927-185-823.)


Прикачени файлове:
untitled.JPG
untitled.JPG [ 110.54 KiB | Прегледано 1471 пъти ]

_________________
Ангел Димитров 95
Нед Мар 28, 2010 10:13 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 08, 2006 2:12 pm
Мнения: 2017
Местоположение: Котел
Мнение 
Въведе ли си кода от пробната транзакция?
Our system requires further account verification
Иначе и на мен адреса ми го дава че не е проверен, явно за БГ е така /пише че не е проблем/.


Нед Мар 28, 2010 10:20 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Да въведох го. Всичко стана verified. После бях си сложил и VbV (3D) (Verified by Visa) парола на картата. Може ли да е от това?

_________________
Ангел Димитров 95


Пон Мар 29, 2010 12:06 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 08, 2006 2:12 pm
Мнения: 2017
Местоположение: Котел
Мнение 
Едва ли. Адреса въведе ли си го? Въобще не ми стана ясно какво ти е ограничено. Какво пише за case case ID f PP-927-185-823?


Пон Мар 29, 2010 3:56 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 143 мнения ]  Отиди на страница Предишна  1 ... 5, 6, 7, 8, 9, 10  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни