Hallo,
zeige mal deinen ganzen Code den du versucht hast in den PIC zu brennen!??
Gruß
Druckbare Version
Hallo,
zeige mal deinen ganzen Code den du versucht hast in den PIC zu brennen!??
Gruß
Den COde den ich versucht hab zu übersetzen mit MPLAB.Code:;*************************************
;
; Includedatei für den PIC16F628A
list p=16f628a
#include p16f628a.inc
;*************************************
; Configuration festlegen
; 8Mhz Resonator: Brown out Reset on, Data Protection off, Power up Timer on, Watchdog off, LV-Programmierung off
_CONFIG _BOREN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC & _LVP_OFF
;
;*************************************
;
; Pinfunktion festlegen
CLRF PORTA ;Comperators off
MOVLW 0x07 ;I/O Funktion ermöglichen
MOVWF CMCON
BCF STATUS, RP1 ;Bank 1 auswählen
BSF STATUS, RP0
MOVLW 0x3F ;Pins config
MOVWF TRISA ;PORTA Input
MOVLW 0x00 ;PortB Output
MOVWF TRISB
BCF STATUS, RP0 ;Bank 0 auswählen
org 0x0000
;***********************************************
;Taster abfragen , Led ausgeben
anf
BTFSS PORTA, RA0 ; teste Bit x von Porta
goto Ledan ; springe,wenn Bit=0 (Schalter gedrückt)
BCF PORTB, RB0 ; nicht gedrückt--> Led aus
goto anf
Ledan
BSF PORTB, RB0 ; setze Bit y von Port B (Led)
goto anf
end
EDIT: Hab was rausgefunden hab jetzt vor jedem Befehl ne Leertast egemacht dann sind die WARNUNGEn schoin mal weg
Zitat:
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "Led.asm" /l"Led.lst" /e"Led.err" /o"Led.o"
Warning[207] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 10 : Found label after column 1. (_CONFIG)
Error[122] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 10 : Illegal opcode (_BOREN_ON)
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 16 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 17 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 18 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 20 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 21 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 23 : Executable code and data must be defined in an appropriate section
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 24 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 24 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 26 : Executable code and data must be defined in an appropriate section
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 27 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 27 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 29 : Executable code and data must be defined in an appropriate section
Error[113] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 35 : Symbol not previously defined (RA0)
Error[113] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 37 : Symbol not previously defined (RB0)
Error[113] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 40 : Symbol not previously defined (RB0)
Halting build on first failure as requested.
BUILD FAILED: Mon Aug 27 17:51:56 2007
EDIT:// Hm da stimmt abr noch irgendwas nicht
Code:;*************************************
; Includedatei für den PIC16F628A
list p=16f628a
include "p16f628a.inc"
;*************************************
; Configuration festlegen
; 8Mhz Resonator: Brown out Reset on, Data Protection off, Power up Timer on, Watchdog off, LV-Programmierung off
__config _BOREN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC & _LVP_OFF
;*************************************
#define taster PORTA,0
#define led PORTB,0
org 0x0000
goto main
; Pinfunktion festlegen
main
CLRF PORTA ;Comperators off
MOVLW 0x07 ;I/O Funktion ermöglichen
MOVWF CMCON
BCF STATUS, RP1 ;Bank 1 auswählen
BSF STATUS, RP0
MOVLW 0x3F ;Pins config
MOVWF TRISA ;PORTA Input
MOVLW 0x00 ;PortB Output
MOVWF TRISB
BCF STATUS, RP0 ;Bank 0 auswählen
;***********************************************
;Taster abfragen , Led ausgeben
anf
BTFSS taster ; teste Bit x von Porta
goto Ledan ; springe,wenn Bit=0 (Schalter gedrückt)
BCF led ; nicht gedrückt--> Led aus
goto anf
Ledan
BSF led ; setze Bit y von Port B (Led)
goto anf
end
Zitat:
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "Led.asm" /l"Led.lst" /e"Led.err" /o"Led.o"
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 28 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 31 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "C:\Programme\Microchip\MPASM Suite\MPLink.exe" "C:\Programme\Microchip\MPASM Suite\LKR\16f628a.lkr" "C:\Dokumente und Einstellungen\putkin\Eigene Dateien\Ledtest\Led.o" /o"LED.cof" /M"LED.map" /W
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x00000022
Errors : 1
Link step failed.
BUILD FAILED: Mon Aug 27 18:18:50 2007
Mfg
jeder befehl muss in einer Spalte stehen dadurch die meisten fehlerCode:;*************************************
;
; Includedatei für den PIC16F628A
list p=16f628a
#include <p16f628a.inc>
;*************************************
; Configuration festlegen
; 8Mhz Resonator: Brown out Reset on, Data Protection off, Power up Timer on, Watchdog off, LV-Programmierung off
__CONFIG _BOREN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC & _LVP_OFF
;
;*************************************
org 0x00
goto main
; Pinfunktion festlegen
main
CLRF PORTA ;Comperators off
MOVLW 0x07 ;I/O Funktion ermöglichen
MOVWF CMCON
BCF STATUS, RP1 ;Bank 1 auswählen
BSF STATUS, RP0
MOVLW 0x3F ;Pins config
MOVWF TRISA ;PORTA Input
MOVLW 0x00 ;PortB Output
MOVWF TRISB
BCF STATUS, RP0 ;Bank 0 auswählen
;***********************************************
;Taster abfragen , Led ausgeben
anf
BTFSS PORTA, 0 ; teste Bit x von Porta
goto Ledan ; springe,wenn Bit=0 (Schalter gedrückt)
BCF PORTB, 0 ; nicht gedrückt--> Led aus
goto anf
Ledan
BSF PORTB, 0 ; setze Bit y von Port B (Led)
goto anf
end
so müsste es jetzt gehen
Gruß
So, da bin ich wieder.
Also der 245 ist ein bidirektionaler Treiber.
Mit H an DIR schaltet er von A nach B.
HCT ist o.k kann aber nicht soviel Strom liefern wie
der LS245 (24 mA bei L, 15mA bei H).
Generell können alle TTL mehr Strom gegen Gnd schalten als gegen VCC.
Pin 19 würde mit H alle Ein-u.Ausgänge hochohmig schalten.
Die Spannungsversorgung reicht für alle drei Schaltungsteile.
Ich hab deinen Code nochmal etwas modifiziert,
hab aber nicht rausgekriegt, wie ich dieses Codefenster
einbinden kann.
MfG
Digger
hi,
@picprogger teste ich sofort
@digger du meinst so einCodefenster wie in meinem Beitrag?
EInfach auf "Code" im Nachrichtentext wnen du den verfasst udn anschließend weider auf "Code*" um das fenster zu schließen
EDIT:// Hab den Code ausprobiert es kommen ha nicht mehr diese Meldungen, aber es kommt die gleiche Fehlermedlung wie bei mir.
MfgZitat:
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Dokumente und Einstellungen\putkin\Eigene Dateien\Ledtest\Led.o".
Clean: Deleted file "C:\Dokumente und Einstellungen\putkin\Eigene Dateien\Ledtest\Led.lst".
Clean: Done.
Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "Led.asm" /l"Led.lst" /e"Led.err" /o"Led.o"
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 28 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 31 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "C:\Programme\Microchip\MPASM Suite\MPLink.exe" "C:\Programme\Microchip\MPASM Suite\LKR\16f628a.lkr" "C:\Dokumente und Einstellungen\putkin\Eigene Dateien\Ledtest\Led.o" /o"LED.cof" /M"LED.map" /W
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x00000022
Errors : 1
Link step failed.
BUILD FAILED: Mon Aug 27 18:56:17 2007
Hey digger
[/code] für ende des codes
[code] für anfang des codes
Hier nochmal die richtige Version.
Die Delay-Zeiten sind für 8Mhz angepasst, kann manCode:
;*************************************
;
; Includedatei für den PIC16F628A
list p=16f628a
include "p16f628a.inc"
;*************************************
; Configuration festlegen
; 8Mhz Resonator: Brown out Reset on, Data Protection off, Power up Timer on, Watchdog off, LV-Programmierung off
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC & _LVP_OFF
;***** VARIABLEN******************
w_temp EQU 0x70 ; context saving
status_temp EQU 0x71 ; context saving
Flags equ H'0072' ;
count equ H'0020'
tempa equ H'0021'
tweek equ H'0022'
;*********************************
; Pinfunktion festlegen
org 0x0000 ;Programmstart
goto INIT
org 0x004 ; Interruptbehandlung
INTSERV movwf w_temp ; W register retten
movf STATUS,w ; status register nach W register
movwf status_temp ; STATUS register retten
bcf STATUS,RP0 ; Bank0
bcf STATUS,RP1
; hier kommt später Code hin
; für eventuelle Interrupts
IntEnd movf status_temp,w ; STATUS register
movwf STATUS ; wieder herstellen
swapf w_temp,f
swapf w_temp,w ; W register wieder herstellen
; ( Inhalt wie vor Interrupt)
retfie ; Rücksprung aus Interruptbehandlung
;****************************************************************
INIT clrf INTCON ; keine Interrupts zulassen
bcf STATUS,IRP
bcf STATUS,RP0
bcf STATUS,RP1 ; Bank0
movlw 0x07 ;Comperators off
movwf CMCON ;I/O Funktion ermöglichen
clrf PORTA
clrf PORTB ; alle Ausgänge Low
BCF STATUS, RP1 ;Bank 1 auswählen
BSF STATUS, RP0
movlw 0x3F ;Pins config
movwf TRISA ;PORTA 0-5 Input
movlw 0x00 ;PortB Output
movwf TRISB
bcf STATUS, RP0 ;Bank 0 auswählen
; hier bei Bedarf andere Register
; für Timer,CCP,EEprom,Usart,Vref
; initialisieren
;***********************************************
;Taster abfragen , Led ausgeben
;Hier steht das eigentliche Programm
;
Start btfss PORTA,0 ; "überspringe nächsten Befehl,wenn Taster nicht gedrückt
goto LedAn
bcf PORTB,0 ; Led aus
;andere Aufgaben hier
goto Start
LedAn bsf PORTB,0 ; Led an
goto Start
;**********SUB _Routinen*************************
DEL1MS movlw D'198' ;t=(n-1)*5+2(call)+6(ret)+7(Kopf)
movwf count
nop
goto $+1
goto $+1
DLY1MS goto $+1
decfsz count,f
goto DLY1MS
return
DEL200MS movlw D'199'
movwf tempa
DLY200 call DEL1MS
decfsz tempa,f
goto DLY200
movlw D'132'
movwf count
TWEEK200 decfsz count,f
goto TWEEK200
nop
return
DELAY500 movlw D'250'
movwf tempa
DLY500 call DEL1MS
decfsz tempa,f
goto DLY500
movlw D'64'
movwf tweek
TWEEK500 decfsz tweek,f
goto TWEEK500
movlw D'250'
movwf tempa
DLY501 call DEL1MS
decfsz tempa,f
goto DLY501
movlw D'64'
movwf tweek
TWEEK501 decfsz tweek,f
goto TWEEK501
return
end
immer wieder mal gebrauchen.
Ansonsten hat das Programm bei mir im Simulator(MPLAB)
funktioniert.
Viel Erfolg!
Digger
Hi, OHA du hast dir sehr viel Mühe gegeben , vielen Dank!
Werds mal testen.
EDIT:/// Ich verstehs nicht es kommt immer die Meldung ->
Zitat:
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x0000008c
Errors : 1
Was bedeutet das.Zitat:
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Dokumente und Einstellungen\***\Eigene Dateien\Ledtest\Led.o".
Clean: Deleted file "C:\Dokumente und Einstellungen\***\Eigene Dateien\Ledtest\Led.lst".
Clean: Done.
Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "Led.asm" /l"Led.lst" /e"Led.err" /o"Led.o"
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 57 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\PUTKIN\EIGENE DATEIEN\LEDTEST\LED.ASM 60 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "C:\Programme\Microchip\MPASM Suite\MPLink.exe" "C:\Programme\Microchip\MPASM Suite\LKR\16f628a.lkr" "C:\Dokumente und Einstellungen\putkin\Eigene Dateien\Ledtest\Led.o" /o"LED.cof" /M"LED.map" /W
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x0000008c
Errors : 1
Link step failed.
BUILD FAILED: Mon Aug 27 19:16:51 2007
Mfg
Ist die falsche Version, krieg ich irgendwie nicht editiert.
Also nochmal
Code:
;*************************************
;
; Includedatei für den PIC16F628A
list p=16f628a
include "p16f628a.inc"
;*************************************
; Configuration festlegen
; 8Mhz Resonator: Brown out Reset on, Data Protection off, Power up Timer on, Watchdog off, LV-Programmierung off
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC & _LVP_OFF
;***** VARIABLEN******************
w_temp EQU 0x70 ; context saving
status_temp EQU 0x71 ; context saving
Flags equ H'0072' ;
count equ H'0020'
tempa equ H'0021'
tweek equ H'0022'
Blk equ H'0023'
;*********************************
; Pinfunktion festlegen
org 0x0000 ;Programmstart
goto INIT
org 0x004 ; Interruptbehandlung
INTSERV movwf w_temp ; W register retten
movf STATUS,w ; status register nach W register
movwf status_temp ; STATUS register retten
bcf STATUS,RP0 ; Bank0
bcf STATUS,RP1
; hier kommt später Code hin
; für eventuelle Interrupts
IntEnd movf status_temp,w ; STATUS register
movwf STATUS ; wieder herstellen
swapf w_temp,f
swapf w_temp,w ; W register wieder herstellen
; ( Inhalt wie vor Interrupt)
retfie ; Rücksprung aus Interruptbehandlung
;****************************************************************
INIT clrf INTCON ; keine Interrupts zulassen
bcf STATUS,IRP
bcf STATUS,RP0
bcf STATUS,RP1 ; Bank0
movlw 0x07 ;Comperators off
movwf CMCON ;I/O Funktion ermöglichen
clrf PORTA
clrf PORTB ; alle Ausgänge Low
BCF STATUS, RP1 ;Bank 1 auswählen
BSF STATUS, RP0
movlw 0x3F ;Pins config
movwf TRISA ;PORTA 0-5 Input
movlw 0x00 ;PortB Output
movwf TRISB
bcf STATUS, RP0 ;Bank 0 auswählen
; hier bei Bedarf andere Register
; für Timer,CCP,EEprom,Usart,Vref
; initialisieren
;***********************************************
;Taster abfragen , Led ausgeben
;Hier steht das eigentliche Programm
;
Start movlw 0xff
movwf PORTB ; alle Led an
movlw 0x05
movwf Blk ; Schleifenzähler Blinken
Blink call DELAY250 ; 0,25 sec warten
movlw 0xff
xorwf PORTB,f ;
decfsz Blk,f ; Schleife Blink 5 mal durchlaufen
goto Blink
Loop btfss PORTA,0 ; überspringe nächsten Befehl,wenn Taster nicht gedrückt
goto LedAn
bcf PORTB,0 ; Led aus
;andere Aufgaben hier
goto Loop
LedAn bsf PORTB,0 ; Led an
goto Loop
;**********SUB _Routinen für Warten*************************
DEL1MS movlw D'198' ;t=(n-1)*5+2(call)+6(ret)+7(Kopf)
movwf count
nop
goto $+1
goto $+1
DLY1MS goto $+1
decfsz count,f
goto DLY1MS
return
DELAY250 movlw D'248'
movwf tempa
DLY250 call DEL1MS
decfsz tempa,f
goto DLY250
movlw D'83'
movwf tempa
TWEEK250 decfsz tempa,f
goto TWEEK250
movlw D'250'
movwf tempa
DLY251 call DEL1MS
decfsz tempa,f
goto DLY251
movlw D'83'
movwf tempa
TWEEK251 decfsz tempa,f
goto TWEEK251
return
end