Sida 2 av 6
Re: Ytterligare en HD44780 tråd.....
Postat: 3 maj 2009, 20:00:20
av sodjan
> Symbol not previously defined (DQ)
Har du läst sidan som du länkade till ?
Also, the following code assumes that a constant DQ has been configured
in the assembly code to indicate which bit in PORTB will be the 1-Wire pin.
Throughout the code, this bit number is simply called DQ.
Du måste ha med en "DQ EQU 1" (eller vilken pinne du nu vill ha 1-Wire prylen på).
> DQ har jag tex definerat i min huvudkod
Hur då !?
> Sedan är det över hundra: "Overwriting previous address contents (0053)" Meddelanden.
Ja, det var ju bra att du inte tog med alla 100, men 2-3 st hade varit intressant,
inklusive raderna där det inträffar.
PDBYTE och TMP0 är två register som du får definiera/allokera själv.
Re: Ytterligare en HD44780 tråd.....
Postat: 3 maj 2009, 20:12:45
av PopUnoNkoK
Jopp, jag har läst sidan som jag länkade till, det var just därför som jag definierade DQ.
Så här har jag definierat DQ:
Detta är de 4 första error meddelandena av denna typ.
Kod: Markera allt
Error[118] C:\DOCUMENTS AND SETTINGS\ANNI&PETTE\MY DOCUMENTS\PICPROGRAMMERING\MPLAB PROJECTS\LCD\LCD.ASM 92 : Overwriting previous address contents (0000)
Error[118] C:\DOCUMENTS AND SETTINGS\ANNI&PETTE\MY DOCUMENTS\PICPROGRAMMERING\MPLAB PROJECTS\LCD\LCD.ASM 92 : Overwriting previous address contents (0000)
Error[118] C:\DOCUMENTS AND SETTINGS\ANNI&PETTE\MY DOCUMENTS\PICPROGRAMMERING\MPLAB PROJECTS\LCD\LCD.ASM 96 : Overwriting previous address contents (0004)
Error[118] C:\DOCUMENTS AND SETTINGS\ANNI&PETTE\MY DOCUMENTS\PICPROGRAMMERING\MPLAB PROJECTS\LCD\LCD.ASM 96 : Overwriting previous address contents (0004)
Och koden där dessa rader är:
Kod: Markera allt
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program <----------- rad 92
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents <----------- rad 96
movf STATUS,w ; move status register into W register
Jag såg nu att detta var i min LCD kod som det inte varit problem med förut. Detta får mig att tro att Inc filen lägger beslag på denna adress innan LCD koden skriver till den.
Re: Ytterligare en HD44780 tråd.....
Postat: 3 maj 2009, 23:03:34
av sodjan
> Så här har jag definierat DQ:
> Kod: #define DQ PORTA, 3
OK. Så DQ = "PORTA, 3". Fine.
Kolla sedan en gång till på någon av raderna där du får fel, t.ex
" BSF TRISB, DQ ". Byt ut "DQ" mot din definition, vad får du då ?
Och är det ett giltigt format för en instruktion ?? Nej, det är det inte.
Läs på lite om (t.ex) BSF så ser du hur DQ ska vara definierat. Och
förresten så hade jag det med i ett tidigare inlägg...
Om du vill göra så som du har tänkt så får du ändra till "BSF DQ".
Re: Ytterligare en HD44780 tråd.....
Postat: 4 maj 2009, 11:28:33
av PopUnoNkoK
Defenitionen av DQ hade du förståss rätt som vanligt. Jag
Här är översta delen av felmeddelandena, dock bara ett message men jag är nyfiken i alla fall. Alltså den säger att jag står i fel bank trots att macrot börjar och slutar med bankbyte OCH trots att jag aldrig anropat macrot än så den vet absolut inte i vilken bank jag står när jag ropar på macrot. Dessutom så får jag felemddelande om rad 15 flera ggr. Jag tog med 2 ggr från Output fönstret som ni ser här under.
Kod: Markera allt
Message[302] LCD\ONEWIRE.INC 15 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] LCD\ONEWIRE.INC 24 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] LCD\ONEWIRE.INC 15 : Register in operand not in bank 0. Ensure that bank bits are correct.
Här är koden där rad 15 förekommer:
Kod: Markera allt
OW_HIZ:MACRO
BSF STATUS,RP0 ; Select Bank 1 of data memory
BSF TRISA, DQ ; Make DQ pin High Z <----------------- rad 15
BCF STATUS,RP0 ; Select Bank 0 of data memory
ENDM
Någon som har nåt tips på hur man ska förshålla sig till detta?
Sedan kommer jag till mina Error meddelanden. 2st av varje.
Kod: Markera allt
Error[118] LCD.ASM 96 : Overwriting previous address contents (0000)
Error[118] LCD.ASM 96 : Overwriting previous address contents (0000)
Error[118] LCD.ASM 100 : Overwriting previous address contents (0004)
Error[118] LCD.ASM 100 : Overwriting previous address contents (0004)
Error[118] LCD.ASM 101 : Overwriting previous address contents (0005)
Kod: Markera allt
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program <--------- rad 96
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents <---------- rad 100
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
Här har jag verkligen ingen aning om vad som är fel, skippar jag 1-wire inc filen så kommer detta inte upp. Några tips?
Tack Sodjan för hjälpen och även för ditt kodexempel till LCD displayen.
MVH Peter F
Re: Ytterligare en HD44780 tråd.....
Postat: 4 maj 2009, 11:45:24
av sodjan
> Alltså den säger att jag står i fel bank trots att...
Nja, den säger att det register du jobbar med inte ligger i bank 0 och
påminner bara om att bankerna måste vara rätt satta. Den har dock ingen
som helst aning om hurvida bankerna *är* rätt satta eller inte. Många
undertrycker just detta meddelande eftersom de ofta blir så många...
Se "4.29 errorlevel..." i MPASM manualen.
> goto main
Jag kan inte hitta "main" i de delar som du har postat.
Re: Ytterligare en HD44780 tråd.....
Postat: 4 maj 2009, 12:42:17
av PopUnoNkoK
Main kommer ett par rader längre ner, efter ISR rutinen. (Som inte gör något just nu).
Kod: Markera allt
;**********************************************************************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
; isr code can go here or be located as a call subroutine elsewhere
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
main
;---------------------------------------------------------------------
; Set up I/O
;---------------------------------------------------------------------
banksel TRISB ;
clrw ; Make all PORTB bits output
movwf TRISB
movwf TRISA ;
Anledningen till att jag inte postat mer är att jag inte gillar att posta MASSA kod, eftersom det för mig känns då som om man vill att någon annan ska fixa problemet åt en. Jag tänkte att felet var på precis den rad som den rapporterade om. Alltså inte vart den raden senare pekade.
Tacksam för all hjälp.
Re: Ytterligare en HD44780 tråd.....
Postat: 4 maj 2009, 13:40:23
av sodjan
Tja, ser ju OK ut. Lite märkligt.
Det finns inte fler "main" i t.ex den inkluderade koden ?
Tja, gör ett litet test-case som visar just det problemet
med minsta möjliga kod. Då kan någon intresserad testa det
i sin egen MPLAB miljö...
Re: Ytterligare en HD44780 tråd.....
Postat: 5 maj 2009, 22:48:37
av PopUnoNkoK
Det ska jag absolut göra så fort jag får tid.
Återkommer (förhoppningsvis) inom kort.
MVH Peter F
Re: Ytterligare en HD44780 tråd.....
Postat: 11 maj 2009, 12:36:17
av PopUnoNkoK
Har nu börjat att göra en test kod med så lite som möjligt med.
Min förra kod är baserad på en Template från microchips Suite. Jag ser nu att det finns två olika kataloger i Templates mappen.
Jag använde den från mappen som heter "Code", inte "Object". Jag antar att detta är rätt men det kan juh vara värt att fråga.
Jag använde alltså filen "16F628ATEMP.ASM"
Rätt eller Fel?
Jag återkommer snart med ett testexempel.
MVH Peter F
Re: Ytterligare en HD44780 tråd.....
Postat: 11 maj 2009, 12:44:27
av PopUnoNkoK
Test kod:
onewiretest.asm
Kod: Markera allt
;**********************************************************************
; This file is a basic code template for assembly code generation *
; on the PIC16F628A. This file contains the basic code *
; building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler (Document DS33014). *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;**********************************************************************
; *
; Filename: xxx.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
; *
;**********************************************************************
; *
; Files Required: P16F628A.INC *
; *
;**********************************************************************
; *
; Notes: *
; *
;**********************************************************************
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
#include <onewire.inc>
errorlevel -302 ; suppress message 302 from list file
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file.
; See data sheet for additional information on configuration word settings.
;***** VARIABLE DEFINITIONS
w_temp EQU 0x7E ; variable used for context saving
status_temp EQU 0x7F ; variable used for context saving
DQ EQU .2
cblock H'20'
w_temp ;Interuppt temp värden
status_temp
TMP0 ;Onewire Inc filens register
PDBYTE
IOBYTE
COUNT
endc
;**********************************************************************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
; isr code can go here or be located as a call subroutine elsewhere
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
main
; remaining code goes here
goto main ;loop forever, remove this instruction, for test only
; initialize eeprom locations
ORG 0x2100
DE 0x00, 0x01, 0x02, 0x03
END ; directive 'end of program'
onewire.inc
Kod: Markera allt
; *******************************************************
;
; Dallas 1-Wire Support for PIC16F628
;
; Processor has 4MHz clock and 1µs per instruction cycle.
;
; *******************************************************
; Använder PORT A
; *******************************************************
; Dallas Semiconductor 1-Wire MACROS
; *******************************************************
OW_HIZ:MACRO
BSF STATUS,RP0 ; Select Bank 1 of data memory
BSF TRISA, DQ ; Make DQ pin High Z
BCF STATUS,RP0 ; Select Bank 0 of data memory
ENDM
; --------------------------------------------------------
OW_LO:MACRO
BCF STATUS,RP0 ; Select Bank 0 of data memory
BCF PORTA, DQ ; Clear the DQ bit
BSF STATUS,RP0 ; Select Bank 1 of data memory
BCF TRISA, DQ ; Make DQ pin an output
BCF STATUS,RP0 ; Select Bank 0 of data memory
ENDM
; --------------------------------------------------------
WAIT:MACRO TIME
;Delay for TIME µs.
;Variable time must be in multiples of 5µs.
MOVLW (TIME/5)-1 ;1µs
MOVWF TMP0 ;1µs
CALL WAIT5U ;2µs
ENDM
; *******************************************************
; Dallas Semiconductor 1-Wire ROUTINES
; *******************************************************
WAIT5U:
;This takes 5µS to complete
NOP ;1µs
NOP ;1µs
DECFSZ TMP0,F ;1µs or 2µs
GOTO WAIT5U ;2µs
RETLW 0 ;2µs
; --------------------------------------------------------
OW_RESET:
OW_HIZ ; Start with the line high
CLRF PDBYTE ; Clear the PD byte
OW_LO
WAIT .500 ; Drive Low for 500µs
OW_HIZ
WAIT .70 ; Release line and wait 70µs for PD Pulse
BTFSS PORTA,DQ ; Read for a PD Pulse
INCF PDBYTE,F ; Set PDBYTE to 1 if get a PD Pulse
WAIT .400 ; Wait 400µs after PD Pulse
RETLW 0
; --------------------------------------------------------
DSRXBYTE: ; Byte read is stored in IOBYTE
MOVLW .8
MOVWF COUNT ; Set COUNT equal to 8 to count the bits
DSRXLP:
OW_LO
NOP
NOP
NOP
NOP
NOP
NOP ; Bring DQ low for 6µs
OW_HIZ
NOP
NOP
NOP
NOP ; Change to HiZ and Wait 4µs
MOVF PORTA,W ; Read DQ
ANDLW 1<<DQ ; Mask off the DQ bit
ADDLW .255 ; C=1 if DQ=1: C=0 if DQ=0
RRF IOBYTE,F ; Shift C into IOBYTE
WAIT .50 ; Wait 50µs to end of time slot
DECFSZ COUNT,F ; Decrement the bit counter
GOTO DSRXLP
RETLW 0
; --------------------------------------------------------
DSTXBYTE: ; Byte to send starts in W
MOVWF IOBYTE ; We send it from IOBYTE
MOVLW .8
MOVWF COUNT ; Set COUNT equal to 8 to count the bits
DSTXLP:
OW_LO
NOP
NOP
NOP ; Drive the line low for 3µs
RRF IOBYTE,F
BSF STATUS,RP0 ; Select Bank 1 of data memory
BTFSC STATUS,C ; Check the LSB of IOBYTE for 1 or 0
BSF TRISA,DQ ; HiZ the line if LSB is 1
BCF STATUS,RP0 ; Select Bank 0 of data memory
WAIT .60 ; Continue driving line for 60µs
OW_HIZ ; Release the line for pullup
NOP
NOP ; Recovery time of 2µs
DECFSZ COUNT,F ; Decrement the bit counter
GOTO DSTXLP
RETLW 0
; --------------------------------------------------------
Onewiretest.asm är alltså BARA templaten från microchip plus att jag lagt till Defenitionen på DQ och registeradresserna till de olika register som används av onewire.inc filen.
Jag får samma felmeddelande som jag skrivit om tidigare i denna tråd. Dock lite färre eftersom att koden onewiretest.asm är kortare i detta test.
Alla tips på vad som kan vara galet mottages tacksamt.
MVH Peter F
Re: Ytterligare en HD44780 tråd.....
Postat: 11 maj 2009, 13:01:48
av sodjan
> Jag använde den från mappen som heter "Code", inte "Object".
Jag antar att du har sett och läst filen "Code_vs_Object_Readme.txt"
som ligger i katalogen "Templates" ?
"Code" filerna är alltså enligt det äldre sättet att bygga applikationer "Absolute mode".
"Object" filerna byggs enligt det mer moderna och flexiblare "Rellocatable mode".
Se även :
http://www.jescab.se/Relocmode.html och
http://www.jescab.se/abs_reloc.html
samt naturligtsvis MPASM/MPLINK manualen.
> Jag använde alltså filen "16F628ATEMP.ASM"
> Rätt eller Fel?
Rätt och rätt. Fel och fel...
Personligen tycker jag att man lika bra kan köra "rellocatable mode", det är lite
mer flexibelt och "snyggare" och "renare", så att säga. Mer likt utveckling på andra
större plattformar (alltså där man har ett compile/assemble => link => execute flöde).
Jag hade alltså föreslagit 16F628ATMPO.ASM istället. Men nej, den du valde är inte "fel"...
> Jag återkommer snart med ett testexempel.
Återkommer snart med svar på det (om jag har något att tillägga...)

Re: Ytterligare en HD44780 tråd.....
Postat: 12 maj 2009, 15:22:41
av PopUnoNkoK
Ja det går inte bra för mig. Har testat att köra med Object Templaten istället (Hade inte sett den TXT filen då jag öppnat den via MPLAB och då visas bara .asm filer) och givetvis gjort projektet till "Relocatable mode" men det blev ingen skillnad.
Nu är jag alltså tillbaka precis där jag var när jag skrev förra inlägget.
Jag hade dock läst båda dina sidor sedan innan och även ganska mycket annan info om Absolut vs Ralocatable mode, hade dock ingen aning om att de olika "kod delarna" kallades object. Relocatable mode har varit på min "att lära sig" lista men inte så högt upp på den. Nu har den punkten dock knuffats upp så igårkväll skrev jag ut lektion 16 från Elmer 160
http://www.amqrp.org/elmer160/lessons/E160L16.pdf. Det var juh inte så stor skillnad som jag trodde.
Vi får se om nästa projekt blir att köra lite enkla saker i Relocatable mode.
Som sagt, jag står och stampar på samma ställe som om någon har något förslag på vad jag kan testa så tages det emot tacksamt.
MVH Peter F
Re: Ytterligare en HD44780 tråd.....
Postat: 12 maj 2009, 15:35:31
av sodjan
"Object code" är ett mellanläge :
Källkod => assemblering/kompilering => objektkod => länkning => exekverbarkod.
Eller :
ASM => MPASM => O => MPLINK => HEX
MPASM manualen sodan 11 har en bra bild över detta.
Hur ser din kod ut nu så att den går att testa ?
Re: Ytterligare en HD44780 tråd.....
Postat: 12 maj 2009, 17:19:50
av PopUnoNkoK
Nu är jag tillbaka till det kodsnuttar som finns i mitt inlägg här ovanför.
Jag gick till baka till Absolut mode när jag fick likadana felmeddelande i Relocatable Mode. Detta eftersom jag känner till Absolute mode bättre och känner att jag har större chans att klara det där. Men trots det så har jag verkligen kört fast.
Tror du att problemet kan vara att jag kör i Absolutmode?
MVH Peter F
Re: Ytterligare en HD44780 tråd.....
Postat: 12 maj 2009, 17:31:46
av PopUnoNkoK
OneWireTEstO.asm
Kod: Markera allt
;**********************************************************************
; This file is a basic code template for object module code *
; generation on the PIC16F628A. This file contains the *
; basic code building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler and linker (Document DS33014). *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;**********************************************************************
; *
; Filename: xxx.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
; *
;**********************************************************************
; *
; Files required: P16F628A.INC *
; *
;**********************************************************************
; *
; Notes: *
; *
;**********************************************************************
list p=16F628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
#include <onewire.inc>
errorlevel -302 ; suppress message 302 from list file
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file.
; See data sheet for additional information on configuration word settings.
;***** VARIABLE DEFINITIONS (examples)
TMP0 RES 1 ; Allokerar (skapar) en variabel med namnet "myvar1".
PDBYTE RES 1
COUNT RES 1
IOBYTE RES 1
; example of using Shared Uninitialized Data Section
INT_VAR UDATA_SHR
w_temp RES 1 ; variable used for context saving
status_temp RES 1 ; variable used for context saving
;**********************************************************************
RESET_VECTOR CODE 0x0000 ; processor reset vector
goto START ; go to beginning of program
INT_VECTOR CODE 0x0004 ; interrupt vector location
INTERRUPT
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
; isr code can go here or be located as a call subroutine elsewhere
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
MAIN_PROG CODE
START
; remaining code goes here
goto $ ; loop forever
; initialize eeprom locations
EE CODE 0x2100
DE 0x00, 0x01, 0x02, 0x03
END ; directive 'end of program'
onewire.inc
Kod: Markera allt
; *******************************************************
;
; Dallas 1-Wire Support for PIC16F628
;
; Processor has 4MHz clock and 1µs per instruction cycle.
;
; *******************************************************
; Använder PORT A
; *******************************************************
; Dallas Semiconductor 1-Wire MACROS
; *******************************************************
OW_HIZ:MACRO
BSF STATUS,RP0 ; Select Bank 1 of data memory
BSF TRISA, DQ ; Make DQ pin High Z
BCF STATUS,RP0 ; Select Bank 0 of data memory
ENDM
; --------------------------------------------------------
OW_LO:MACRO
BCF STATUS,RP0 ; Select Bank 0 of data memory
BCF PORTA, DQ ; Clear the DQ bit
BSF STATUS,RP0 ; Select Bank 1 of data memory
BCF TRISA, DQ ; Make DQ pin an output
BCF STATUS,RP0 ; Select Bank 0 of data memory
ENDM
; --------------------------------------------------------
WAIT:MACRO TIME
;Delay for TIME µs.
;Variable time must be in multiples of 5µs.
MOVLW (TIME/5)-1 ;1µs
MOVWF TMP0 ;1µs
CALL WAIT5U ;2µs
ENDM
; *******************************************************
; Dallas Semiconductor 1-Wire ROUTINES
; *******************************************************
WAIT5U:
;This takes 5µS to complete
NOP ;1µs
NOP ;1µs
DECFSZ TMP0,F ;1µs or 2µs
GOTO WAIT5U ;2µs
RETLW 0 ;2µs
; --------------------------------------------------------
OW_RESET:
OW_HIZ ; Start with the line high
CLRF PDBYTE ; Clear the PD byte
OW_LO
WAIT .500 ; Drive Low for 500µs
OW_HIZ
WAIT .70 ; Release line and wait 70µs for PD Pulse
BTFSS PORTA,DQ ; Read for a PD Pulse
INCF PDBYTE,F ; Set PDBYTE to 1 if get a PD Pulse
WAIT .400 ; Wait 400µs after PD Pulse
RETLW 0
; --------------------------------------------------------
DSRXBYTE: ; Byte read is stored in IOBYTE
MOVLW .8
MOVWF COUNT ; Set COUNT equal to 8 to count the bits
DSRXLP:
OW_LO
NOP
NOP
NOP
NOP
NOP
NOP ; Bring DQ low for 6µs
OW_HIZ
NOP
NOP
NOP
NOP ; Change to HiZ and Wait 4µs
MOVF PORTA,W ; Read DQ
ANDLW 1<<DQ ; Mask off the DQ bit
ADDLW .255 ; C=1 if DQ=1: C=0 if DQ=0
RRF IOBYTE,F ; Shift C into IOBYTE
WAIT .50 ; Wait 50µs to end of time slot
DECFSZ COUNT,F ; Decrement the bit counter
GOTO DSRXLP
RETLW 0
; --------------------------------------------------------
DSTXBYTE: ; Byte to send starts in W
MOVWF IOBYTE ; We send it from IOBYTE
MOVLW .8
MOVWF COUNT ; Set COUNT equal to 8 to count the bits
DSTXLP:
OW_LO
NOP
NOP
NOP ; Drive the line low for 3µs
RRF IOBYTE,F
BSF STATUS,RP0 ; Select Bank 1 of data memory
BTFSC STATUS,C ; Check the LSB of IOBYTE for 1 or 0
BSF TRISA,DQ ; HiZ the line if LSB is 1
BCF STATUS,RP0 ; Select Bank 0 of data memory
WAIT .60 ; Continue driving line for 60µs
OW_HIZ ; Release the line for pullup
NOP
NOP ; Recovery time of 2µs
DECFSZ COUNT,F ; Decrement the bit counter
GOTO DSTXLP
RETLW 0
; --------------------------------------------------------
Har nu testat igen och det är andra felmeddelanden. Jag har defenierat registrerna men in DQ då jag inte vet riktigt hur man gör det i "Relocatable Mode", alltså när jag bara ska definiera ett BIT nummer. Gör jag på samma sätt som i Absolutmode när det gäller bitnummer och inte minnesadresser? Alltså EQU?
Kod: Markera allt
Error[150] C:\ONEWIRE.INC 39 : Labels must be defined in a code or data section when making an object file
Error[152] C:\ONEWIRE.INC 41 : Executable code and data must be defined in an appropriate section
Error[152] C:\ONEWIRE.INC 42 : Executable code and data must be defined in an appropriate section
Error[151] C:\ONEWIRE.INC 43 : Operand contains unresolvable labels or is too complex
Error[152] C:\ONEWIRE.INC 43 : Executable code and data must be defined in an appropriate section
Error[151] C:\ONEWIRE.INC 44 : Operand contains unresolvable labels or is too complex
Error[152] C:\ONEWIRE.INC 44 : Executable code and data must be defined in an appropriate section
Error[152] C:\ONEWIRE.INC 45 : Executable code and data must be defined in an appropriate section
Första Error raderna av måååånga errorrader.
MVH Peter F