Ik wil een digitale waarde die omgezet is door de AD converter van deze µC doorsturen via de antenne. De waarde van dit binair getal bevind zich in de registers ADRESL en ADRESH. Op welke pin of op welke manier kan ik dit resultaat nu op de antenne krijgen? Iemand een idee. Ik heb niks in de datasheet gevonden.
datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/70091a.pdf
Hopelijk kan iemand me hierbij helpen.
TNX
Aha!
En als de de dataask dan enabled is(rfen natuurlijk ook wordt de waarde van in ADRESL en ADRESH dan overgezet op de antenne? Of moet je dit echt bit per bit doen? Of gaat dit niet rechstreeks van ADRESL en ADRESH (moet je dit eerst in een ander register steken?)
TNX!
Hier staat de code die ik geprobeerd heb om te schrijven.
STATUS_TEMP equ 20
;---------------------------------------------------------------
org 00
goto main
;
org 04h
goto IRQ
;*******************************************************************
init ;RFEN uit zetten
bcf GPIO,5 ;powersaving
;In/outputs declareren
bcf STATUS,RP0 ;select bank 0
bcf TRISIO,3 ;declare pin 17 (G P2)
;als output om DATAask te sturen
bsf TRISIO,4 ;declare pin3 waar
analoog signaal aankomt als input
Bcf TRISIO,5 ;declare pin 2 als output om RFEN te sturen.
bsf status,RP0 ;select bank1
movlw b'00011000'; ;zet gp4 als analoge input en de rest als digitaal.
+ ook fosc instellen 001 –> 8 Tosc
movwf ANSEL
;Interrupt instellingen
Movlw 11000000 ;algemeen interrupts instellen
Movwf INTCON
Movlw 01000000 ;
peripheral interrupts instellen
Movwf PIE1
;interne oscillator caliberen
bsf STATUS, RP0 ;select bank1
call 3FFh ;get the calibration value
movwf OSCCAL ;calibreer de oscillator
bcf STATUS,RP0 ;select bank0
;AD-CONVERSIE (GP4 en AN3 INPUT)
Movlw b'10001100';uitleg zie datasheet
Movwf ADCON0
Startconv Bcf ADCON0,1 ;conversie is nog niet gebeurd
return
;*******************************************************************
;hoofdprogramma
;*******************************************************************
main goto init
;
;
back goto back ;blijft hier loopen tot er een interrupt gegenereerd word, dan ;ISR
;*******************************************************************
;Interruptservicesubroutine
;*******************************************************************
IRQ movwf W_TEMP ;Copy W to TEMP register
swapf STATUS,W ;Swap status to be saved into W
movwf STATUS_TEMP ;Save status to STATUS_TEMP register
;
polling btfss PIR,6 ;komt interrupt van adconversion?
goto RETFIT0 ;Test from where IRQ is comming
bcf PIR,6
;
ISR ;code voor het echt verzenden van de info
Bsf GPIO,2 ;dataAsk uit
Bcf GPIO,2 ;dataAsk aan
(Hier weet ik niet wat ik er nog bij moet typen)
;
;
RETFIT0 swapf STATUS_TEMP,W ;Swap nibbles in Status_TEMP register
;and place result into W
movwf STATUS ;Move W into STATUS register
;(sets bank to original state)
swapf W_TEMP,F ;Swap nibbles in W_TEMP and place result in W_TEMP
swapf W_TEMP,W ;Swap nibbles in W_TEMP and place result into W
Bsf ADCON0,1 ;start conversie
retfie
;***********************************************************************
end
Op 12 november 2007 09:01:35 schreef RobinW:
Aha!
En als de de dataask dan enabled is(rfen natuurlijk ook wordt de waarde van in ADRESL en ADRESH dan overgezet op de antenne? Of moet je dit echt bit per bit doen? Of gaat dit niet rechstreeks van ADRESL en ADRESH (moet je dit eerst in een ander register steken?)TNX!
Hier staat de code die ik geprobeerd heb om te schrijven.
Code lezen zou wat lang duren vrees ik, misschien later eens
je zal het idd bit per bit moeten versturen, ik vermoed dat de antenne dit een tijdje zal blijven uitsturen (dus net zolang de antenne ingeschakeld is) zodat de andere chip deze ooit kan ontvangen.
Je moet eens kijken in de datasheet waar precies juist je die pin kan activeren. Meestal is dat in een of ander register een bitje aan of uitzetten.
okey. Maar dit bits 1 per 1 sturen, naar welke plaats moet ik deze sturen? Dit vind ik nergens terug in de datasheet.
Misschien lees ik erover of snap ik het niet maar kan iemand mss even de datasheet doornemen om mij te helpen?
toegegeven ik heb het ook niet direct gevonden, wel zie ik dat in de voorbeeldschema's er pinnen doorverbonden worden. Misschien moet je omwille van emc redenen de gepaste pinnen aansturen vanuit een hoogimpedante bron.
ja idd, zo stuur ik vb dataask en rfen aan met behulp van general purpose outputs.
Iemand een idee waar ik de oplossing wel kan vinden? Dus vanuit welk register de antenne data toegestuurd krijgt?