Změna define v programu

Jak změnit definovane v programu ? příklad mam program :

#define LED PORTA,2

START BSF LED
CALL PAUZA
BCF LED

TADY NECO ABYCH ZMENIL DEFINE LED TREBA NA PORTA,3
A BLIKALO TO NA PORTA,3

          BSF   LED
          CALL PAUZA 
          BCF   LED

END

Díky za odpovedi, překladač MPASMWIN 5.20

nejako mi to nemysli ? ale o coti ide ? zadefinuj
#define LED1 PORTA,3

btfsc priznak,0 ;priznak ak je log1 ide led ak log0 ide led1
goto ledka1

BSF LED
CALL PAUZA
BCF LED
return

ledka1
BSF LED1
CALL PAUZA
BCF LED1
return

pripadne x inych moznosti

Jde mi o to ze ted led1 je napr. porta,3
a v bezicim programu zmenim led1 na treba porta,4
priradim stejnemu nazvu jiny bit portu A
existuje nejake undefine ale netusim jak to pouzit
kdyz dam undefine led1 porta3
a pak znova define led1 porta,4
tak mi prekaldac nahlasi chybu
ty ledky jsou jen priklad.

A co si nadefinovat vic tech pinu ??

[code]#define LED0 PortA,0
#define LED1 PortA,1
#define LED2 PotrA,2
.
.

bsf LED0
call pauza
bcf LED0
bsf LED1
call pauza
bcf LED1
.
.
[/code]
nebo pres rotaci

movlw .1 movwf PortB call pauza rlf PortB,1 call pauza rlf PortB,1 . .

Potřebuju to opačně
#define LED0 PortA,0
#define LED1 PortA,1
#define LED2 PotrA,2
to je mi na nic ,to je mi jasne ja potrebuju nekde v behu programu zmenit
k symbolu LED postupne priradit
#define LED PortA,0
#define LED PortA,1
#define LED PotrA,2
ZADNE LED1 LED2 LED3

to nejde, nemuzes mit vic definic pod jednim stejnym jmenem, a to je takovej problem si to prepest v programu ?
kdybys vic priblizil tvuj problem bylo by to jiste jednodusi …

Dobre takze mam napsane rutiny pro teplomer s cidlem 18b20 coz v pameti zabira asi 1/5 programu jenze tech cidel tam mam 4 a jsou napojeny na kazde na jiny pin procaku 4x kopirovat stejny kus rutiny je blbost a ani se mi to nevleze do pameti jeste tam jsou dalsi veci ( vim ze 18b20 je sbernicovy typ ,ale ja to tak nemam napsane a nebudu to resit ) a proste potrebuju zmenit po projeti te rutiny zmenit prave ten pin toho procaku aby projelo dalsi cidlo a pak dalsi a dalsi jen mi staci v tom define zmenit nejak ten pin, muzu sice pomoci btfss testovat jaky je to zrovna pin ale to cidlo celkem casove kriticke na casovani ,nasel jsem nejake undefine coz by mohlo podle nazvu mohlo zrusit puvodni define a nahradit jinym tak asi tak

[code]#define led PORTB,0

bsf led
bcf led

#undefine led
#define led PORTB,1

bsf led
bcf led

#undefine led
#define led PORTB,2

bsf led
bcf led
[/code]
skus to takle …, snad to pude , osobne sem to nikdy nepouzil

Díky moc za radu zkousel jsem to v simulatoru PIC Simulator IDE a tam to nejede porad blika jen jedna ledka ,tak jsem to dal na nepajive pole a ono to jede jeste jedno dik tady je muj pokusny program

[code]

	INCLUDE	"P12F675.INC"
	LIST 	P=12F675, R=DEC
 
__CONFIG _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT

;-------------------------------------------------------------

	org	00h
	goto	INIT	

;-------------------------------------------------------------
C1 EQU h’20’ ;vytvoření konstanty
C2 EQU h’21’ ;vytvoření konstanty
C3 EQU h’22’ ;vytvoření konstanty

;-------------------------------------------------------------
INIT BCF STATUS,RP0 ;Bank 0
CLRF GPIO ;Init GPIO
MOVLW b’00000111’ ;konparator vypnut
MOVWF CMCON ;digital IO
BSF STATUS,RP0 ;Bank 1
MOVLW b’00000000’
MOVWF ANSEL ;Digital I/O
MOVLW b’00000000’ ;
MOVWF TRISIO ;
BCF STATUS,RP0 ;Bank 0
GOTO START
;-------------------------------------------------------------
START

#define LED GPIO,0
BSF LED
CALL DELAY
BCF LED

#undefine LED
#define LED GPIO,1

	BSF 	LED
	CALL	DELAY
	BCF	LED

#undefine LED

	GOTO 	START

;PODPROGRAMY
;-------------------------------------------------------------

DELAY MOVLW 100
MOVWF C1
MOVLW 100
MOVWF C2
MOVLW 50
MOVWF C3
DECFSZ C3,1
GOTO $-1
DECFSZ C2,1
GOTO $-5
DECFSZ C1,1
GOTO $-8
RETURN

END
[/code][/code]

me to v simulatoru fungovalo, samozrejme si musis nastavit prislusnej port jako vystup, u ty 675 se jeste nastavuje konstanta pro oscilator, hned po startuCALL 3FFh ; kalibrace vnitrniho oscilatoru MOVWF OSCCAL

Pokud si jí naprogramováním mcu již nesmazal… :slight_smile:

Tak uz mi to jede aji v tom simulatoru jo tu konstantu mam napsanou na chipu tuzkou protoze mam obycejny programator a programovanim mi tu konstantu vzdy smaze takze na te adrese nic neni tak to nejak neresim az budu porebovat presny oscilator tak tu konstantu opisu z chipu :slight_smile: Jeste jednou dik.