Отговори на тема  [ 19 мнения ]  Отиди на страница 1, 2  Следваща
Управление на MCP42100 с PIC16F84A 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Чет Дек 09, 2004 3:15 pm
Мнения: 123
Местоположение: Благоевград
Мнение Управление на MCP42100 с PIC16F84A
Здравейте , от доста време се опитвам да управлявам програмируемия потенциометър на Микрочип с пик-а.
Изводите на потенциометъра са включени като делител ,
а с измервателния уред измервам все едно и също показание.
Поогледах внимателно командите , които изпращам и не забелязах грешка. Какво ли може да става ?


Вто Дек 14, 2004 1:35 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Дай да видим програмата ти. Доколкото помня трабваше да се прати 0х00 преди желаната стойност

_________________
Adios
Mozfet


Вто Дек 14, 2004 1:54 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Чет Дек 09, 2004 3:15 pm
Мнения: 123
Местоположение: Благоевград
Мнение 
;********************* DEFINE I/O PINS **********************
#define SCK PORTB,3
#define SI PORTB,2
#define CS PORTB,1
#define RS PORTB,0
;------------------------------------------------------------
Write_0 bcf SI
bsf SCK
bcf SCK
return
;------------------------------------------------------------
Write_1 bsf SI
bsf SCK
bcf SCK
return
;------------------------------------------------------------
Send_Comand movlw B'11011111'
movwf Comand_Reg
movlw D'8'
movwf Counter
refresh_1 RLF Comand_Reg,f
btfss STATUS,C
call Write_0
btfsc STATUS,C
call Write_1
decfsz Counter,f
goto refresh_1
return
;------------------------------------------------------------
Send_Data movlw D'8'
movwf Counter
refresh RLF Reg_Data,f
btfss STATUS,C
call Write_0
btfsc STATUS,C
call Write_1
decfsz Counter,f
goto refresh
return
;------------------------------------------------------------
main bcf SCK
bcf CS
movlw D'50'
movwf Reg_Data
call Send_Comand
call Send_Data
sleep_1 nop
goto sleep_1
END


На входа SHDN е подадено постоянно неактивно ниво "1"!


Вто Дек 14, 2004 3:30 pm
Профил
Мнение 
Âïðî÷åì íå íàìåðèõ â äàòàøèéòà îïèñàíèå íà òðàíñôåðà íà äàííè ò.å äàëè äàííèòå ñå ïðåäàâàò îò íàé-ìëàäøèÿ áèò èëè îáðàòíî?


Чет Дек 23, 2004 2:21 pm
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
Пробва ли да сложиш няколко "nop" между "bcf SCK" и "bsf SCK" и обратно?
смътно си спомням за подобен проблем с портовете - наложи се по-бавно да ги клатя
И да не си забравил да ги дефинираш като изходи


Чет Дек 23, 2004 3:48 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Здр.
При Spi се предава първо най-старшия бит.
Пробвай да сложиш BSF CS след call Send_Data.

_________________
Adios
Mozfet


Чет Дек 23, 2004 5:39 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Чет Дек 09, 2004 3:15 pm
Мнения: 123
Местоположение: Благоевград
Мнение Значи...
Действително предаването на данни започва от най-старшия бит. В даташийта са дадени времена на продължителност на импулса от порядъка на 150nS , при мен честотата е 4МНц и
съответно периода 1uS така , че мисля проблема да не е от там. Подкарах го до някаде , НО става така , че :
- нулирам регистъра с данни и го изпращам , след това измервам с уреда делителя , който съм реализирал и изхода е нула /до тук добре/.
- увеличавам данните с единица , а в изхода вече имам половината напрежение от делителя , при следващите три инкрементирания на регистъра отивам до захранващото напрежение на делителя /а потенциометъра е на 256 нива???/.
- при следващо инкрементиране в средната точка от делителя пак имам нула и всичко пак започва от начало , а стойността на регистъра е само 5 или 6.
Колкото до "bsf CS" с неговото нулиране се изпращат контролния регистър и този за данни и след това се вдига в единица т.е трябва да са минали 16 такта /това го бях пропуснал/ !


Пон Дек 27, 2004 10:22 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Чет Дек 09, 2004 3:15 pm
Мнения: 123
Местоположение: Благоевград
Мнение STOP
Сега вече тръгна. Имах една логическа грешка и на дебъгера веднага лъсна. Единствения пропуск беше "bsf CS" след изпращането на данни. Благодаря за мненията!


Пон Дек 27, 2004 1:33 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Пак заповядай :)
Имаш възможност малко да оптимизираш кода. Ако се обръщаш към една и съща подпрограма "Send_byte" за Command_byte и Data_byte ще спестиш около 10 реда асемблер.

_________________
Adios
Mozfet


Пон Дек 27, 2004 3:15 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Извинявам се за намесата, ама мога ли да си сложа такива потенциометри на усилвателя, вместо оригиналните механични? :)


Пон Дек 27, 2004 4:26 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 30, 2004 11:19 pm
Мнения: 609
Мнение 
що да не можеш, лепи и програмирай :)


Пон Дек 27, 2004 5:16 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

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


Пон Дек 27, 2004 5:40 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
А има и някои дето мног гадно препукват като сменят стойността си ......т.е. те не препукват, а усилвател с тях препуква ..... :)


Пон Дек 27, 2004 6:42 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Цифровите пот имат съпротивление на Wiper 50-150 ома(завсиси за какво съпр. ти е пот-а) . Т.е. не можеш да получиш 0 ома, винаги ще имаш най-малко 50 .

MCP4xxxx за звук не стават.

_________________
Adios
Mozfet


Пон Дек 27, 2004 6:50 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Гадост. А кои стават? :)


Пон Дек 27, 2004 6:59 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 19 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

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


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

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