@Mr. ruediw
ähm, was soll das eigentlich?
1. könnte es ja sein, dass ich das erste mal irgendwas Programmier, wäre das der fall, könntest du mich ja einfach auf die Fehler aufmerksam machen ohne deine echt besch******* Antworten, welche mir bis jetzt noch nichts gebracht haben.
2. Ich hab mal gelernt, uC zu Programmieren. Dies ist nun schon mindestens 1 Jahr her. Mit PIC's beschäftige ich mich mich diesem Projekt zum ersten mal, ich hab also noch wenig erfahrung.
3. Ja ich weiss was ein Stackpointer ist. Leider hab ich bis jetzt nirgends gefunden, wo der im PIC zu finden ist. Aber vielleicht kannst du mir das ja erzählen, wenn du so viel weisst...

Es wäre also sehr nett, wenn du mir ne normale Antwort geben könntest und nicht immer irgendwelche blöde Kommentare dazuschreiben würdest.

-------

Also ich hab nochmal das Programm überarbeitet. Ich hab nun eine Ziehmlich gute lösung für die Timeouts mit nem Zähler.
@Bernhard_: Wie würde ich dann ein POP durchführen? Es gibt ja keinen POP-Befehl oder?

Also, wegen dem Timeout. Ich hab diesen Programmabschnitt (ohne Timeout-erkennung):
Code:
send_calc_1	
		bsf		prog_status, 2	; 1 an TR gesendet

		bcf		WEISS_OUT		; Datenleitung 3 auf 0 ziehen.
		call	send_calc_wait

		btfsc	ROT_IN			; Auf bestätigung warten, solange die Datenleitung 2 noch auf 1 ist.
		goto	send_calc_1
		call	send_calc_wait

								; Ist die Datenleitung 2 auch auf 0 (die bestätigung)...
		bsf		WEISS_OUT		; ...datenleitung 3 wieder auf 1 setzen.

send_calc_11
		btfss	ROT_IN			; Warten, solange die Datenleitung 2 noch auf 0 ist.
		goto	send_calc_11

	return
Hättet ihr eine bessere Idee, bei "send_calc_11" auf die Reaktion des TR's zu warten als eine Schlaufe?

mfg