| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| как да конвертирам десетично число в код на ад9833 http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=7405 |
Страница 1 от 2 |
| Автор: | excitron [ Нед Дек 20, 2009 10:25 am ] |
| Заглавие: | как да конвертирам десетично число в код на ад9833 |
колеги здр,авейте ,пробвах да създам програма за първи път ,за пик + лцд + 4 бутона за реализация на генератор с ад9833 нещата се получават добре ,докато стигнах до ад9833 кажете ми как да организирам програмата ,тъи като задавам константи за 1,10,100,1000,10000,100000,1000000 Хз поглеждайки ги в прозиводителя за този 4ип но . опитите да направя пресмятащата част ,т.е. да конвертирам десетично зададени те ми стойностти в такива строго фиксирани стоиностти значи немога да разбера ако за 1хз е 4000 400B за 2 хз е 4000 4015 за 3 хз е 4000 4020 от 1хз към 2хз разликата е H'0A' OT 2 hz do 3 hz -----------h'0B' И Т.Н. основната разлика продължава да е '0В' , НО се случва по нататък по незнайна за мен пречина тази разлика между две съседни честоти да намалява до '0А' ТОВА МЕ ОБЪРКА Е СЪМ ВЕЧЕ В ШАХ И МАТ ПОМОГНЕТЕ МИ ДА РАЗБЕРА АЛГОРИТЪМА за ад9833 |
|
| Автор: | zaphod [ Нед Дек 20, 2009 10:56 am ] |
| Заглавие: | |
ами като за начало пробвай да си изтеглиш документацията на чипа, помага понякога |
|
| Автор: | excitron [ Нед Дек 20, 2009 2:03 pm ] |
| Заглавие: | |
това вече бях го правил,но специално немога да схвана ,как стават нещата, тъй като има формула пресмята се ,но не винаги отговарят на калкулирането което се прави в сайта и от там нямам престава как да организирам програмата ,тъи като немога да рзбера какъв е редът в образуването на честотите нека някои помогне ,даже да разгледам примерна програма ,стига да е писана на асемблер 4е С+ не го разбирам |
|
| Автор: | relsys [ Нед Дек 20, 2009 3:07 pm ] |
| Заглавие: | |
Абсолютно винаги отговаря, ами не си знаеш честотата на осцилатора дето клатиш АД-то. |
|
| Автор: | excitron [ Нед Дек 20, 2009 4:13 pm ] |
| Заглавие: | |
знам си я ,тази честота на осцилатора точно 25 Mхз просто ми кажете стъпката не винаги е една и съ6та значи самата програма която разглеждах ,явно не е е добре писана ТАКА например нека за примера само да задам за настройка на единиците на ад9833, а другите уми6лено няма да ги пиша така нека за FD7 (0 do 9) да задаваме произволно избрана от нас стойност ,като трябва да получим съответен код на za FB1, FB2, FB3, FB4 АМИ фактически не се получават реално всички правилно ,има някакъв гъдел в резултата когато настъпва пренос към старши разред и тогава се добавя към резултата h'01' t.e INCF FB(0-4).., F и така да получаваме правилна стойност,помагайте ;UNITS INCF FD7,W ;REGISTER TO TEST FD7 MOVWF GP1 MOVLW H'00' ;OFFSET VALUE 10(X.1)=1Hz MOVWF ADD1 MOVLW H'40' MOVWF ADD2 MOVLW H'40'; NALOJENO DA SE PROMENI ----------------------------PROMENQNO NQKOLKO PATI MOVWF ADD3 MOVLW H'0A'; TUK BE6E 0A MOVWF ADD4 CALL ADD32 ;SUBROUTINE ADD32 ;ADDS THE OFFSET IN ADD1-4 TO FB1-4, GP1 TIMES ADD32 DECF GP1,F ;DECREMENT GP1 BTFSC STATUS,Z ;RETURN IF ZERO RETURN MOVF ADD4,w ;ADD FB4+ADD4 (LS BYTE) ADDWF FB4,f BTFSC STATUS,C ;IF A BIT HAS CARRIED INCREMENT NEXT BYTE UP INCF FB4,f ; TUKA BE6E FB3 GOTO ADD32 MOVF ADD3,W ;ADD FB3+ADD3 ADDWF FB3,F BTFSC STATUS,C ;IF A BIT HAS CARRIED INCREMENT NEXT BYTE UP INCF FB3,F MOVF ADD2,W ;ADD FB2+ADD2 ADDWF FB2,F BTFSC STATUS,C ;IF A BIT HAS CARRIED INCREMENT NEXT BYTE UP INCF FB2,F MOVF ADD1,W ;ADD FB1+ADD1 (MS BYTE) ADDWF FB1,F BTFSC STATUS,C INCF FB1,F GOTO ADD32 |
|
| Автор: | michev [ Нед Дек 20, 2009 4:16 pm ] |
| Заглавие: | |
Прочети това Ако след това отново не успееш да схванеш, то по добре се откажи |
|
| Автор: | excitron [ Нед Дек 20, 2009 5:15 pm ] |
| Заглавие: | |
тази информация има разлика относно използваният от мен ад9833 ,нека помагат и други ,достъчно е някой който се е занимавал да ми обясни тука |
|
| Автор: | michev [ Нед Дек 20, 2009 5:36 pm ] |
| Заглавие: | |
25Mhz oscillator 2^28 = 268435456 OSC/2^28 = step step = 0.0931322574615478515625 1Hz = step * x x = 1/step = 10.73741824 ~ 11 (проверка: 11х0.0931322574615478515625 = 1.0244548320770263671875 Хз) 11 в 16-тичен вид е 0x0B -> с толкова трябва да увеличаваш/намаляш 28 битовото число за да имаш стъпка 1Хз Ще се наложи да работиш със закръгляне, или да смениш задаващия генератор с друг, при който пресмятането ти дава цели числа За другите стъпки - по същия начин смяташ. едит: Не забравяй, че това след десетичната запетая се натрупва и в един момент ще рефлектира на честотата - т.е честотата измерена на изхода ще е по голяма от тази която си искал да бъде |
|
| Автор: | excitron [ Пон Дек 21, 2009 9:42 pm ] |
| Заглавие: | |
помогнете ако ползвам генератор който да дава точни числа или как да се състои програмата и какжо аако трябва да се промени в побликуваната от мене така,че да се работи със закръгляне |
|
| Автор: | Cekins [ Вто Дек 22, 2009 2:37 pm ] |
| Заглавие: | |
Ами на microchip на сайта трябва да има float routines. Като искаш точност - няма друг начин. По-лесния начин е да изоставиш асемблера. Ако си нагодиш осцилатора да ти работи с цели числа - какво толкова има да се мъдри. А и за 32бит аритемтика си има библиотеки. |
|
| Автор: | michev [ Вто Дек 22, 2009 4:59 pm ] |
| Заглавие: | |
Разгледай този сорс код. |
|
| Автор: | relsys [ Вто Дек 22, 2009 11:46 pm ] | |||||||||
| Заглавие: | ||||||||||
Ето това работи:
|
||||||||||
| Автор: | ДедоБоре [ Вто Дек 22, 2009 11:55 pm ] |
| Заглавие: | |
откога не бях виждал паскал... то и ада не съм вижда отдавна, ма като че ли беше по-скоро
това как влиза в пик? |
|
| Автор: | relsys [ Сря Дек 23, 2009 12:20 am ] | |||||||||
| Заглавие: | ||||||||||
С Ctrl+F9 Недей пита, че сега ще настане война тук... нали само на С трябва да се пише http://www.mikroe.com/en/compilers/mikropascal/pro/pic/ Има и още 2-3 компилатора, единия е все едно драскаш на ТР7. |
||||||||||
| Автор: | excitron [ Сря Дек 23, 2009 12:22 am ] |
| Заглавие: | |
благодаря за съдействието на всички, само че разбирам само асемблер ,дано от вас знаещите да помагат на такова ниво |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|