Hallo und Grüße an alle PIC Programmierer,
da ich nach langen zögern doch endlich meine Programmiersprache
von Assembler auf C umgestellt habe, stehe ich vor mehreren (vermutlich für euch kleinen) Problemen.
Ich möchte mit meinem PIC16F877 über die serielle Schnittstelle einen
String einlesen, zwischenspeichern und anschließend mit einem 2. String vergleichen.
(Der Wert des 2. String wird im Funktionsaufruf als Konstante
übergeben, dies geschieht jedoch in einer anderen Funktion da ich
diese öfters mit verschiedenen Strings benötige)
Nun habe ich folgende Probleme:
1.)
Ich kann zwar einen String einlesen, bekomme aber das Problem dass
ich für einen späteren Vergleich den Zeiger (globale Variable) wieder
auf das erste Byte richten muss.
Wenn ich beim Aufruf meiner Funktion den String kopiere
(*Start_Byte = *Empfangenes_Byte) bekomme ich aber leider die
Fehlermeldung, dass der Code in C eigentlich richtig ist, aber die Funktion
bei meinem Controller nicht möglich ist, da er nur ein Zeigerregister hat.
Wie kann ich dies in C (ich verwende CC5X) anders programmieren.
Ich habe hierfür auch schon das FSR Register ausgelesen und wollte
den Wert meinem zweiten Zeiger zuweisen, jedoch ist dies in C nicht
möglich da ich einem Zeiger nur eine Zeigervariable und keinen Wert
zuweisen kann.
2.)
Wenn ich meinen String in einer zweiten Funktion vergleichen möchte,
habe ich das Problem dass ich gleichzeitig mit zwei Zeigern arbeiten
muss, um deren Inhalt (ausgelesener Wert) miteinander zu vergleichen.
Gibt es hierfür eine Möglichkeit ohne dass ich ständig mein
FSR – Register neu laden muss?
Ich hoffe ich konnte meine Probleme deutlich erklären und würde
mich über eure Lösungsmöglichkeiten und Vorschläge sehr freuen.
Grüsse von fritzle123
Lesezeichen