Отговори на тема  [ 45 мнения ]  Отиди на страница 1, 2, 3  Следваща
Прекъсване от USART 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение Прекъсване от USART
Абе нещо не мога да си вкарам PIC16F877A в прекъсване с источник USART...
Правя го със следните стъпки:
    1. bsf INTCON, PEIE
    2. bsf PIE1, RCIE
    3. bsf INTCON,GIE


След това пикчето го затварям в някакъв цикъл, пращам му нещо по RS232 ама то не отговаря... Дали не съм изтървал някаква важна особеност?


Чет Окт 28, 2004 11:09 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Ami като ти дойде ти какво правиш? Става дума, като ти дойде прекъсването. Щото там имаше някави битове, които трябва програмно да се нулират - маските за прекъсване в някакъв статус регистър. Не го ли нулираш "ръчно" постоянно ще си влизаш в прекъсването. За съжаление не ми е тук пищова за ПИЦ16, а не ми се тегли. Погледни го при тебе, и ако не стане пак се обади. Ша го изтегля, де ша ода.


Чет Окт 28, 2004 11:18 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
А може и въобще да не получаваш прекъсване. Заплюй си някой пин за индикатор, нулирай го и като влезаш в прекъсване го сетни. Повече не го пипай, за да знаеш дали изобщо те прекъсва. Виж с каква скорост работиш. Провери с мултицета дали пинчето RxD се смъква като му пращаш символи ( нормално трябва да е High при мълчание ) Ако пак не стане, значи днес не му е ден. :?


Чет Окт 28, 2004 11:24 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
В INT секцията (0х0004) съм си сложил нормалните "context save" и "context restore" процедури + BEEP процедурка (за писукане на пиезозумер) и нулиране на флага RCIF (той всъщност се нулира при четене на RCREG). Досега прекъсвал PIC от всякакви источници, ама не и от USART. Типа на комуникация ми е RS-485, 115200, тествах го без прекъсване - работи. Имам и два светодиода за TX и RX, очевадно е че PIC-а приема нещо, ама не получавам BEEP. Пробвах прекъсване с TMR0, да разбера дали нещо не съм оплескал по INTCON, ама всичко е OK (писука си когато трябва).


Чет Окт 28, 2004 11:39 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
За какъв пищов става дума?


Чет Окт 28, 2004 11:40 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Аз съм правил точно такова прекъсване. Целта ми беше да препрограмирам някои параметри на ПИЦ-а чрез Хипертерминала. Бях задал и ключова дума. Ако съвпадне се изпълнява цялото прекъсване, аке не - не.
Но както казва батето, трябва да имаш: bcf PIE1, RCIE.
Даже нулирам и приемния регистър.

_________________
Adios
Mozfet


Чет Окт 28, 2004 11:47 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Ти на изпити не си ли ходил, та ме питаш за какъв пищов става дума - откъдето се преписва :wink:
Става дума за .PDF-а.
А сега сериозно - да не би beep() да ти е доста дълго, т.е пускаш го да пищи и чакаш да мине време. През това време може да ти дойдат една манифестация от символи при тази скорост. Какъв дебъгер ползваш? Сложи точка на прекъсване в процедурата на прекъсването и гледай какво става.


Чет Окт 28, 2004 11:54 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Аз помислих, че ще ме застреляш заради тъпите въпроси дето ги задавам... :lol:

BEEP() ми е дългичко около 100ms, ама аз през това време нищо не пращам по USART, ей ся ще погледна какво ми става в интеръпта...Дебъгера ми е MPLAB-SIM


Чет Окт 28, 2004 12:23 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Абе нещо не ми е вред...В момента в който сетна PIE1,<RCIE> (разрешавам прекъсване от USART reciever-а) PIC-a ми влиза в прекъсване, и дори да нулирам флага за прекъсване, продължава да си стои там :shock:


Чет Окт 28, 2004 12:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Не помня точно, ама май симулатора не поддържа UART


Чет Окт 28, 2004 2:06 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Пич, може да е малко дърводелско, ама защо не постнеш текста на прекъсването?


Чет Окт 28, 2004 2:08 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Baudrate-а ми е абсолютно точен (PIC@20MHz; BRG=1; SPBRG=10 - това ми е за 115200bps, тествах го без прекъсвания). Работя върху желязото :D . За постване на кода: той е вкъщи, аз съм на работа, тука го написах подобен::




    ORG 0x0004
    INT
    push
    ..
    BEEP
    bcf PIR1,RCIF
    pop
    retfie


    INIT_USART
    ..
    bsf PIE1,RCIE ; ей тука разрешавам прекъсвания от USART
    ..
    ..
    main
    дрън_дрън
    goto main




Чет Окт 28, 2004 2:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
ами изглежда като структура вярно. Ама що не ползвате хардуерни дебъгери бе хора? Щеше отдавна да си рабрал какъв е проблема. Сега така единственото което предложи батето - набеждаваш един пин за индикатор и го блъскаш насам, натам из кода да видиш докъде си стигнал. Ама така е ебати сляпата история. Един ICD1 се прави за 20 лева сумарно, що се мъчите.


Чет Окт 28, 2004 3:40 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Ами просто не съм опирал до чак такива проблеми, че да ми трябва ICD... А за ICD2 колко пари да си приготвя?


Чет Окт 28, 2004 3:53 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
По-подробно, момче, по-подробно. Интересувам се кои регистри запазваш, как, в какъв ред, кои ползваш в тялото на процедурата, кои в бипкането, с кои банки работиш и т.н. То е ясно, че като идея е вярно, но фактът, че гърми, показва, че нещо си пропуснал. Айде като се прибереш, copy + paste


Чет Окт 28, 2004 4:46 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 45 мнения ]  Отиди на страница 1, 2, 3  Следваща

Кой е на линия

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


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

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