реклама на сайте
подробности

 
 
> DAC, sos!!!
Fynjy86
сообщение Oct 13 2008, 04:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



здравствуйте, не могу никак запустить цап, вот код:


#include "msp430.h" ; #define controlled include file

NAME main ; module name

PUBLIC main ; make the main label vissible
; outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label

RSEG CSTACK ; pre-declaration of segment
RSEG CODE ; place program in 'CODE' segment

init: MOV #SFE(CSTACK), SP ; set up stack

main: NOP ; main program
MOV.W #WDTPW+WDTHOLD, &WDTCTL ; Stop watchdog timerV DAC12ENC+
BIC.B #BTHOLD, &BTCTL
MOV.B #0h, P6DIR
MOV.B #0h, P6SEL
BIS.B #BIT6, P6SEL
BIS.B #BIT6, P6DIR
BIS.W #TASSEL0+MC0, &TACTL
BIS.W #0FFFFh, &TACCR0
BIS.W #0AAAAh, &TAR
MOV.W &0FFh, &DAC12_0DAT
BIS.W #ADC12ON+REFON+REF2_5V, &ADC12CTL0//источник опорного напряжения
BIS.W #DAC12CALON, &DAC12_0CTL
BIS.W #DAC12AMP0+DAC12AMP1+DAC12AMP2,&DAC12_0CTL
BIS.W #DAC12ENC+DAC12LSEL0,&DAC12_0CTL//
BIS.W #DAC12CALON, &DAC12_0CTL
SSS: MOV.W &TAR, &DAC12_0DAT
JMP SSS ; jump to current location '$'
; (endless loop)
END





помогите найти ошибку
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Vas&Lis
сообщение Oct 13 2008, 18:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 13-10-08
Пользователь №: 40 925



Друг непонятное в твоем коде многое...во первых у тебя сам контроллер запустился? хоть что то?во вторых как проявляется ошибка с ЦАПом? что он выдает на пине? потом какая задача вообще стоит?просто запустить? и зачем тебе трехкратное усиление выходного сигнала?по моему запись в DAC12_xDAT до инициализации это бессмысленно...заносить в DAT все таки лучще 12-ти разрядное число...а в TAR лучше вообще ничего не заносить а предварительно его сбросить...с первого взгляда ошибки при инициализации нет , что касается именно ЦАПа. Попробуй убрать строку с заносом в TAR значения и в инициализации сбрось таймер или вообще его убери и в цикле инкремент переменной какой нить сделай и заноси в ЦАП, та удобно на пине пила получиться...
Go to the top of the page
 
+Quote Post
Fynjy86
сообщение Oct 14 2008, 03:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 24-03-08
Пользователь №: 36 192



сделал во так:


#include "msp430.h" ; #define controlled include file

NAME main ; module name

PUBLIC main ; make the main label vissible
; outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label

RSEG CSTACK ; pre-declaration of segment
RSEG CODE ; place program in 'CODE' segment

init: MOV #SFE(CSTACK), SP ; set up stack

main: MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer

BIS.W #ADC12ON+REFON+REF2_5V, &ADC12CTL0//
BIS.B #BIT6,P6SEL//
BIS.B #BIT6,P6DIR//
BIS.W #DAC12AMP0+DAC12AMP1+DAC12AMP2, &DAC12_0CTL//
BIS.W #DAC12SREF0+DAC12RES+DAC12ENC+DAC12LSEL0, &DAC12_0CTL//
FDSA: INC &DAC12_0DAT

JMP FDSA

; main program

JMP $ ; jump to current location '$'
; (endless loop)
END



на выходе приямоугольная трапеция biggrin.gif только что не могу понять, то что при запуске калибровки он не выходит из неё... подскажите как правельно калибровать))

Сообщение отредактировал Fynjy86 - Oct 14 2008, 03:50
Go to the top of the page
 
+Quote Post
den123
сообщение Oct 28 2008, 06:31
Сообщение #4





Группа: Новичок
Сообщений: 10
Регистрация: 28-10-08
Пользователь №: 41 240



На мой взгляд - не хватает задержки на выполнение калибровки ЦАП. У меня так:
bis #DAC12CALON,&DAC12_0CTL
labdac0
bit #DAC12CALON,&DAC12_0CTL; Ожидание завершения самокалибровки
jnz labdac0
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.03048 секунд с 7
ELECTRONIX ©2004-2016