| Автор |
Съобщение |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Хм, с прекъсването, което ми описа по-горе ли работи програмата?
От вчера съм с кварца от часовник Q&Q. Сега върнах китайския (той и оня е китайски ама това е друга тема).
Вече не спирам таймера и не пиша в TMR1L, а само смъквам флага:
BCF PIR1,TMR1IF ;Смъква флага от препълване на TMR1
MOVLW 0x80
MOVWF TMR1H
|
| Нед Юли 12, 2009 12:05 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Ахам, е програмат не е писана на асемблер, щото бая щях да се поизпотя докато я напишя. До тук 25 минути и няма все още разлика. Засега седи разликата от натискането на двата бутона (около 0,2 - 0,3 сек.) щото немога абсолютно едновременно да ги пусна 
|
| Нед Юли 12, 2009 12:10 pm |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Ясно, както се и очакваше значи проблема е софтуерен. Тъкмо пуснах и почвам да следя
Тука вече станах спец
п.с Моя почна пак да избързва  .
Остана варианата с прекъсванията, но факта че избързва ме притеснява !!!!
|
| Нед Юли 12, 2009 12:13 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
час и 15 минути - от 0,3 нарастна до 0,5 - за това време твоя вече бягаше със секунди. Не казвам, че е свръх точен но 0,2 сек. на час не е кой знае колко много за непретенциозно приложение.
едит за да не спамя повече : 2:05 - още няма секунда - около 0,7 - 0,8. Спирам го щото няма смисъл от повече.
Последна промяна Cekins на Нед Юли 12, 2009 1:49 pm, променена общо 1 път
|
| Нед Юли 12, 2009 12:59 pm |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
При мен за 20-на минути избяга с 1 сек. Довечера ще пробвам с прекъсването.
|
| Нед Юли 12, 2009 1:05 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Ама това дето е за кварца само за красота са го нарисували като инвертор. И е нормално на изхода му да има синусоида макар и крива. Включването на "груб" уред към изхода също смущава а към входа си е катастрофа
В подобни случаи е по-добре да сравняваш 2-е честоти (следената с някаква еталонна) отколкото директно да мериш. Навремето бях срещал проста и хитроумна схема за честотен дискриминатор (май в няк'ва книга за TTL-ки) който пускаше кратки импулси към реверсивен брояч само ако те са вповече. Мисля, че трябва да имате такова нещо под ръка. Не мога да отделя повече време затова ще я опиша - току виж някой се сетил:
- входните честоти се подават на формирователи на кратки отрицателни импулси от NAND и 3-и инвертора,
- импулсите се подават на фазов компарарор с D-тригер/и (?) - като този в '4046,
- фазовият компаратор управлява 2-а ключа изпълнени с NAND,
- на другия крак на NAND-ключовете се подават съответните къси импулси ама минати през закъснителна линия от 6 инвертора.
Резултатът е, че се пуска импулс само ако той е 2-ри от същата входна поредица, т.е. на другия вход не е имало.
Обаче Мечо не си поигра със захранването - ако честотата зависи от него и при другия кварц: или си направил толкова тъпа грешка в платката че чак не можеш да я видиш или си опукал пика 
|
| Нед Юли 12, 2009 3:17 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Е добре де, що при мене без никакви особенни хардуерни чалъми работи със задоволителна точност. 0,2 сек на час при положение че не съм правил нищо за да го прецизирам - 33pF към маса и това е. Само че моето не е часовник ами си е нещо като хронометър - за двата часа които максимум ще мери (понякога), тая половин секунда никой няма да я види.
Вече многократно беше казано - ако ще е за часовник има си специализирани RTС-та - досега по сведения от клиенти дават разлика максимум от около минута на месец - това вече си зависи и от кварца.
|
| Нед Юли 12, 2009 4:27 pm |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Това със захранването в момента съм го оставил настрана. Сложих само филтриращ кондензатор 4700u на главното захранване, но не съм правил опити (мисля обаче да направя).
Тъкмо се прибрах и боднах така, само от любопитство на portc, 5 един светодиод. Светвам го точно когато зареждам таймер 1 и го гася точно преди софтуера да зацикли със следенето флага на таймера. Оказва се че едвам го виждам да присветва. Така на око светва за около 0.1 сек.
Изключено е да се обърква нещо поради забавене с надписи или изпълнение на каквито и да е инструкции.
Преди време си направих генератор с AD9833. Ще го пусна на 32.768 khz и мисля да го вържа на RA4/T0CKI. (т.е като такт на Таймер 0). Интересно ми е тогава какво ще се получи. Само че имам един 18F452, а сорса на генератора и часовника са писани за него.
Опитах да пусна PIC18F4420 (които имам в наличност), но нещо не става работата с конфигурационните битове.
Порових из нета и ненамерих нищо от примерна програма на асемблер, но намерих нещо, което според мен е много полезно за начинаещи като мен , а и не само -> ww1.microchip.com/.../en/.../C18_Config_Settings_51537e.pdf Повечето от Вас сигурно редовно го ползват..... вече и аз  .
Въпреки това обаче все още не сработва 18F4420-ката. Някой може ли да помогне? Ето какво съм написал водейки се от pdf-a
CONFIG OSC = HS
CONFIG FCMEN = OFF
CONFIG IESO = ON
CONFIG PWRT = OFF
CONFIG BOREN = SBORDIS
CONFIG BORV = 1
CONFIG WDT = OFF
CONFIG WDTPS = 128
CONFIG MCLRE = ON
CONFIG LPT1OSC = ON
CONFIG PBADEN = OFF
CONFIG CCP2MX = PORTBE
CONFIG STVREN = ON
CONFIG LVP = OFF
CONFIG XINST = OFF
CONFIG DEBUG = OFF
CONFIG CP0 = OFF
CONFIG CP1 = OFF
CONFIG CPB = OFF
CONFIG CPD = OFF
CONFIG WRT1 = OFF
CONFIG WRTB = OFF
CONFIG WRTC = OFF
CONFIG WRTD = OFF
CONFIG EBTR0 = OFF
CONFIG EBTR1 = OFF
CONFIG EBTRB = OFF
То не е тук точно мястото да питам за това, но ако трябва ще пусна тема в съответния раздел.
|
| Нед Юли 12, 2009 10:06 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Да ама ако честотата се влияе от захранването е все едно, че се опитваш да вземеш изпит за шьофьор със спукана гума 
|
| Нед Юли 12, 2009 10:24 pm |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Прав си ! Само да подкарам 4420-ката и TMR0 ще го пусна на батериии.
|
| Пон Юли 13, 2009 8:19 am |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
Толкова ли ти е трудно да си намериш кварц с по голяма честота кратен на 2, във футурел има 4.194304Мхз :
http://www.futurel.bg/index.php?pg_id=2&g_id=10329&sg_id=53219&sid=410ce591d36319e5ccff345f774b1142&qty=0&lang=bg
Обяснявам пак:
1. Превключваш TMR1 към вътрешния генератор като там честотата е 1/4 от основната.
2. Включваш 1/8 предварителния делител и след 16-те бита на таймера имаш прекъсване точно на 0.5сек.
3. Като влезе в прекъсване имаш точно да отбройш 2 пъти до 1сек и останалото е кратно на 60.
Виж тук има 2 примера за часовници
http://www.radiokot.ru/circuit/digital/home/11/
http://narod.kmv.ru/kornilov/clock.html
_________________ Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
|
| Пон Юли 13, 2009 11:51 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Това не е 100% решение, а си е чисто заобикаляне. Аз например в повечето случаи ползвам едни буутлоудери дета са за 20 или 4 мхз, и затова не го правя този трик. Иначе става - няма проблеми, ама човека иска да подкара малкия осцилатор. Значи ако с промяна на кондензаторите няма никакъв ефект, тогава ще да е нещо я хардуерно по чипа, я софтуерно. Аз ползвам 33pF с кометските кварцове и вече писах каква грешка засякох. При Ме40 става въпрос за къде по-сериозна грешка.
|
| Пон Юли 13, 2009 4:54 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
Дори е по добро решение това заобикаляне.
1. Имаш пълно синхронизиране в честотата защото се ползва един източник.
2. Колкото по висока е честотата толкова точноста е по голяма.
3. Дори като схема и външни елементи е по опростено, няма нужда да подкарваш 2 кварца при положение че може и с един да мине.
_________________ Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
|
| Пон Юли 13, 2009 5:53 pm |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Никак даже не е трудно да си намеря такъв кварц, стига да се сетя за тази идея, която наистина ми харесва и смятам и нея да пробвам. Иначе наистина се позаиграх с 32768 (не поглеждах настрани) и ми беше интересно, къде е проблема. За мен лично Таймер 1 не работи точно с външен осцилатор. Ще пробвам задължително с Таймер 0, RA4 и AD9833 (там поне в доста по голяма степен ще съм сигурен за честотата) . Ще пиша за резултата. Иначе, че при мен се получава по-голяма грешка няма спор. В крайна сметка със софтуерна корекция вече 3 часа и половина цепя секундата. Благодаря на всички включили се, научих още някой нови неща и идеи. Сега се заемам PIC18F4420 и неговата конфигурация. .......Какво да правиш, нали трябва да си човъркаме там все нещо 
|
| Пон Юли 13, 2009 9:40 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
А ако трябва да приспи пика?
Човъркай Мечо, да си сигурен че ще ти потрябва!
И пак не си пробва софтуерната корекция на понижено захранване...
Щото аз имах таймер за нощна енергия с тъпа RC група който не грешеше повече от час на година.
Edit за точността на кварцовете (ike след мен вече се заяде): поради особености на технологията най-точни са 5МХц-вите. Ама има кварцове и схеми... Всъщност е тъпо да се спори за точност когато става дума за тактов генератор на пик. Обаче честотата трябва да е стабилна макар и неточна.
Последна промяна bongo_x2 на Пон Юли 13, 2009 10:47 pm, променена общо 2 пъти
|
| Пон Юли 13, 2009 10:22 pm |
|
|