| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| UASRT rx interrupt проблем, ATmega8, asm http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10531 |
Страница 1 от 1 |
| Автор: | showMANiak [ Нед Сеп 30, 2012 9:35 am ] | |||||||||
| Заглавие: | UASRT rx interrupt проблем, ATmega8, asm | |||||||||
Здраво на всички.Скъса ми нервите тоя UART.Ето какво измъдрих:
Проблема е ,че в общи линии нереални стойности излизат на порта,а не това което пращам от компа.Примерно ,ако изпратя 128 десетично,ми излиза на порта 255 или пък ако изпратя 'А' ми излиза някакъв съвсем друг символ. За проба във функцията на интеръпта направих ,така че нулевия пин на порт Б да си сменя състоянието при пристигане на данни и там всичко си е ток ,демек сменя си на всяко пристигане на данни състояниeто ,т.е проблема не е в самия код за обработка на интеръпта а някъде другаде...може би. Настройките са си ок и от двете страни - 2400 бита/сек,8 бита,1 стоп бит,без parity (не мога да се сетя как се превеждаше на български Интересното е ,че ако я пренапиша без интеръпти ,демек да проверява RXC флага ,си бачка съвсем редовно програмката. 100 пъти пренаписвах,четох за 3465 път pdf-a на мегата,пак пренаписвах и не виждам нищо да пропускам и вече се изчерпах откъм предположения Помощ? |
||||||||||
| Автор: | Cino [ Нед Сеп 30, 2012 10:57 am ] |
| Заглавие: | Re: Къде бъркам с тоя проклет UART? |
тази стойност 0x25 за UBBRL, (UBBRH след ресет е 0) на 2400, какъв такт трябва да ползваш. Поне не я виждам в таблиците на даташиита. |
|
| Автор: | showMANiak [ Нед Сеп 30, 2012 7:05 pm ] |
| Заглавие: | Re: Къде бъркам с тоя проклет UART? |
Вътрешния осцилатор на мегата-1Мхц |
|
| Автор: | Nikola Kirov [ Нед Сеп 30, 2012 7:15 pm ] |
| Заглавие: | Re: Къде бъркам с тоя проклет UART? |
Мегата няма прецизен RC генератор който можеш да ползваш за UART. Сложи си външен кварц. |
|
| Автор: | tgi [ Нед Сеп 30, 2012 7:24 pm ] |
| Заглавие: | Re: Къде бъркам с тоя проклет UART? |
Е нали го е докарал да работи без прекъсвания, къде го пращате при кварца. То не че е зле да елиминира това неизвестно де ама изглежда му е ясно кое как е там. |
|
| Автор: | Nikola Kirov [ Нед Сеп 30, 2012 7:28 pm ] |
| Заглавие: | Re: Къде бъркам с тоя проклет UART? |
Колко е работило не е ясно. Тоя 1 MHz е много неточен. А ако пишеше на C можеше и с сорс да му помогна ама като го мързи да учи ще се мъчи. |
|
| Автор: | Cino [ Нед Сеп 30, 2012 7:42 pm ] |
| Заглавие: | Re: Къде бъркам с тоя проклет UART? |
ами пратих го на кварца, защото стойността за 2400 на 1MHz вътрешен осцилатор е 25dec , а не 25hex, явно 3465 пъти четене не са му стигнали, А я е докарал да работи, като гледа че на всeки приет символ му идва прекъсването, без да проврява фрейм еррора. което при тази настройка на бод рейта , съм сигурен че идва точно символ с фрейм еррор. Иначе колко по лесно за всички щеше да е ако темата се каваше примерно: "UASRT rx interrupt проблем, ATmega8, asm" Нито е писал кой е контролера, ( добре че има инклуднат хедър ) нито е казал че е на вътрешен осцилатор ( добре че чака порт B, та там не е включил външния ), нито е казал с какво асемблира, AVR Studio ли, команден ред и нотпад ли ползва. нито е написал четимо 20 реда код, да се чуди човек кое са векторите на прекъсванията, къде започва мейна, къде е събрутина на rx прекъсването. Нито е казал с кой незнаен клонинг на програматор работи, който също е на порт Б , и не се знае как отпуска линиите. За фюзовете също няма нищо споменато, да се чудим на колко MHz го кара този контролер Също и неточността на вътрешния осцилатор спомената от Киров, |
|
| Автор: | showMANiak [ Нед Сеп 30, 2012 11:01 pm ] |
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm |
При положение ,че работи без интеръпти,не съм много сигурен,че проблема е точно в осцилатора Киров,по въпроса със Си-то-не мерси.Асемблера ми се струва някак си по удобен специално за микроконтролерите.Все пак си е "натуралния" им език ,ама всеки си има вкус А и да-ако ме мързеше щях да бягам от асемблера,а не да се мъча да го уча Cino,по твоите въпроси да кажа,че кода е набързо надраскан с цел просто да проверя дали се случват нещата както трябва.Не претендирам за читаемост,а някои работи за човек,който се занимава с такива неща според мен ,нямат нужда от пояснение и се разбират от кода -например процесора.Че съм пропуснал да споделя някои други важни неща-факт П.П-Пробвах и с 25 десетично за UBRRL-пак същото.Утре ще проверя дали дава frame error при пристигането |
|
| Автор: | tgi [ Нед Сеп 30, 2012 11:47 pm ] |
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm |
За писане на асемблер няма да сбъркаш ако свикнеш да пишеш коментар на всеки ред, на английски. Без това си обречен, то всъщност е и едно от основните предимства на програмирането на асемблер. Баш на тоя процесор асемблерът му е доста крив и неудобен - все пак е за дребна архитектура - но това не пречи, създадените навици се пренасят съвсем лесно на какъвто и да е език нататък. Това, че на делителя му е все едно каква стойност слагаш (това 25/37) говори обаче, че има нещо тотално криво и навярно са прави тия, дето те пращат при осцилатора (едва ли е единственият проблем ама трябва да е проблем ако е едно и също и при 25 и при 37, ако съм разбрал правилно). |
|
| Автор: | showMANiak [ Пон Окт 01, 2012 9:54 pm ] |
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm |
Не знам дали съм в грешка,ама май проблема ще се окаже в компилатора на студиото При положение,че и на 4 Мхц със да кажем по-сигурен от моя код не бачка,остава да е проблема в компилатора |
|
| Автор: | Dimitar [ Вто Окт 02, 2012 12:30 am ] | |||||||||
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm | |||||||||
Моя опит сочи, че обикновено проблема е в предмониторното устройство Иначе съм чувал също "програмата съм сигурен, че ми е вярна, просто процесора не интерпретира правилно инструкциите" |
||||||||||
| Автор: | tgi [ Вто Окт 02, 2012 2:00 am ] |
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm |
За да може човек да каже, че даден компилатор (бе това не беше ли някакъв асемблер?) греши, трябва да го хване точно къде и в какво и да го демострира. Всичко друго са празни приказки. Ако не може да го хване значи не знае достатъчно за да разсъждава по въпроса Хващал съм грешки, най-много на моите - то аз и от близо 20 години само с тях работя - и мога да кажа, че е много малко вероятно по принцип, в случая не мисля, че въобще има някаква значима вероятност да е така. |
|
| Автор: | Ники [ Вто Окт 02, 2012 2:02 am ] |
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm |
Компилаторите на асемблер са близки до безгрешността |
|
| Автор: | showMANiak [ Вто Окт 02, 2012 8:10 am ] |
| Заглавие: | Re: UASRT rx interrupt проблем, ATmega8, asm |
Новобрански надежди значи |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|