Forum: Mikrocontroller und Digitale Elektronik SRF02 mittels Assambler programmieren (z.b. mit 18F4520)


von Sascha G. (sascha22)


Lesenswert?

Hallo,

hat jemand Ahnung wie ich einen SRF02/05 Sensor mit einem Microchip 
(18F4520, 16F887 oder 16F847) programmiere?
Besitzen alle ein MSSP Modul. Ich finde nur irgendwo keine passende 
Literatur oder Informationsquellen. Bin schonirgendwie leicht 
verzweifelt. :/

mfg
Sascha

von Tom (Gast)


Lesenswert?

Sascha Giesler schrieb:
> Bin schonirgendwie leicht
> verzweifelt. :/

Jetzt schon? Du hast ja noch gar nicht angefangen :)

von W.S. (Gast)


Lesenswert?

Sascha Giesler schrieb:
> hat jemand Ahnung..

Na klar doch. Ich zum Beispiel.

Mein Tip wäre, bei Microchip die passenden Unterlagen zu den 
betreffenden µC's herunterzuladen und zu lesen. Dazu gibt es in jedem 
Falle auch besondere Unterlagen, wo drinsteht, wie die betreffenden 
Chips zu programmieren sind.

Wen du das gelesen und verstanden hast, dann ist dein Problem gelöst.

W.S.

von Klaus (Gast)


Lesenswert?

Wenn du was passendes in C findest: lass dir das einfach vom XC8 nach 
Assembler übersetzen. Schon hast du deinen Code

MfG Klaus

von Sascha G. (sascha22)


Lesenswert?

Erstmal danke für die vielen Antworten.

W.S. schrieb:
> Sascha Giesler schrieb:
>> hat jemand Ahnung..
>
> Na klar doch. Ich zum Beispiel.
>
> Mein Tip wäre, bei Microchip die passenden Unterlagen zu den
> betreffenden µC's herunterzuladen und zu lesen. Dazu gibt es in jedem
> Falle auch besondere Unterlagen, wo drinsteht, wie die betreffenden
> Chips zu programmieren sind.
>
> Wen du das gelesen und verstanden hast, dann ist dein Problem gelöst.
>
> W.S.

Ich kenne mich mit den µC's schon etwas aus. Hab damals mit Assembler 
Code aber keinen Sensor geregelt sondern nur LED's in gewisser 
Reihenfolge aufblinken oder Zahlen darstellen lassen und ein wenig mit 
Interrupts rumgespielt.

Ich hab mir auch die Datenblätter von z.b. 
http://www.roboter-teile.de/datasheets/srf08.pdf ausgedruckt und 
durchgelesen aber wie man direkt mit Assembler einen SRF08 oder SRF02 
regelt kam für mich nicht hervor.

von Volker S. (vloki)


Lesenswert?

Sascha Giesler schrieb:
> ... mit einem Microchip
> (18F4520, 16F887 oder 16F847) programmiere?
> Besitzen alle ein MSSP Modul.

Das heißt du willst den Sensor über I2C ansprechen ?
Warum nicht RS232 ?

von Sascha G. (sascha22)


Lesenswert?

Volker SchK schrieb:
> Sascha Giesler schrieb:
>> ... mit einem Microchip
>> (18F4520, 16F887 oder 16F847) programmiere?
>> Besitzen alle ein MSSP Modul.
>
> Das heißt du willst den Sensor über I2C ansprechen ?
> Warum nicht RS232 ?

Hab nur gelesen das der I2C-Bus ein sehr häufiger und beliebter 2 
Draht-Bus ist. Fande das Prinzip von der Datenleitung und Taktleitung 
auch relativ verständlich zudem habe ich auch nur diese 3 Mircrochips 
zur Verfügung.

Hab zwar schon gelesen das es den RS232 gibt aber das war es auch schon. 
:/

Was ich suche sind eher Information wie ich mit dem MC den Sensor regel. 
Kann mir da keiner ein Buch empfehlen?

von Bernd K. (prof7bit)


Lesenswert?

Sascha Giesler schrieb:
> Was ich suche sind eher Information wie ich mit dem MC den Sensor regel.
> Kann mir da keiner ein Buch empfehlen?

Die Datenblätter würd ich vorschlagen.

Da führt kein Weg dran vorbei. Am Anfang ist es hart, Du wirst 
stundenlang brauchen selbst für die kleinsten Schritte, bereite Dich auf 
verknotete Hirnwindungen vor und schlaflose Nächte. Wochenlang. Aber 
dann, wenn Du da durch bist wird es rapide einfacher und das was Du 
gelernt hast kann Dir keiner mehr wegnehmen.

Irgendwann bist Du dann so weit daß Du solche Sachen nebenher beim 
Frühstück machst. Aber der Weg dorthin ist steinig und hart und es gibt 
keine Abkürzung.

von Volker S. (vloki)


Lesenswert?

Sascha Giesler schrieb:
> Hab nur gelesen das der I2C-Bus ein sehr häufiger und beliebter 2
> Draht-Bus ist. Fande das Prinzip von der Datenleitung und Taktleitung
> auch relativ verständlich zudem habe ich auch nur diese 3 Mircrochips
> zur Verfügung.
>
> Hab zwar schon gelesen das es den RS232 gibt aber das war es auch schon.
> :/

Also RS232 ist (wenn er erst mal konfiguriert ist) viel primitiver als 
I2C. Beim PIC nennt sich der RS232 (asynchron) USART ;-)

> Kann mir da keiner ein Buch empfehlen?
Äääähhhh ja, in den Datenblättern steht alles dirn was man wissen muss 
...

von Sascha G. (sascha22)


Lesenswert?

Volker SchK schrieb:
> Sascha Giesler schrieb:
>> Hab nur gelesen das der I2C-Bus ein sehr häufiger und beliebter 2
>> Draht-Bus ist. Fande das Prinzip von der Datenleitung und Taktleitung
>> auch relativ verständlich zudem habe ich auch nur diese 3 Mircrochips
>> zur Verfügung.
>>
>> Hab zwar schon gelesen das es den RS232 gibt aber das war es auch schon.
>> :/
>
> Also RS232 ist (wenn er erst mal konfiguriert ist) viel primitiver als
> I2C. Beim PIC nennt sich der RS232 (asynchron) USART ;-)
>
>> Kann mir da keiner ein Buch empfehlen?
> Äääähhhh ja, in den Datenblättern steht alles dirn was man wissen muss
> ...

Was für Datenblätter wen ich fragen darf? :/

von Volker S. (vloki)


Lesenswert?

Sascha Giesler schrieb:
> Was für Datenblätter wen ich fragen darf? :/
Schon bisschen blöde Frage, aber meinetwegen
-> die von SRF02 und PICxxxx ;-)
(findest du hoffentlich selber, oder brauchst du einen link zu google?)

von Sascha G. (sascha22)


Lesenswert?

Volker SchK schrieb:
> Sascha Giesler schrieb:
>> Was für Datenblätter wen ich fragen darf? :/
> Schon bisschen blöde Frage, aber meinetwegen
> -> die von SRF02 und PICxxxx ;-)
> (findest du hoffentlich selber, oder brauchst du einen link zu google?)

Blöde Fragen gibt es nicht, nur Antworten. :)

Ich dachte das eventuell unterschiedliche Datenblätter existieren. Ich 
hab nur die von Robotikhardware und dort sind leider keine Beispiele mit 
Assemblercode nur mit Bascom.

von Michael K. (Gast)


Lesenswert?

Sascha Giesler schrieb:
> Blöde Fragen gibt es nicht

Ähm, doch, gibt es.

Du willst einen PIC programmieren.
Wo meinst Du steht im Detail wie das geht ?

a: Im Betriebshandbuch Deines Toasters
b: Im Datenblatt zum PIC Mikrocontroller
   - Datenblatt des exakten Typs
   - Family Reference der PIC Familie
   - Programmers Reference
   - Dazu: Toolchain + Doku + Programmer

Du willst wissen was ganz genau der PIC eigentlich an den Pins die zum 
SRF02/05 Sensor führen machen muss damit der überhaupt weis was Du 
gerade von ihm willst.

Wo glaubst Du wird das stehen ?

Du kannst natürlich auch den Bascom Code anschauen UND verstehen, dann 
weist Du was dem Mikrocontroller gesagt wird das er tun soll.
Das kannst Du dann in einer Programmiersprache Deiner Wahl 
nachprogrammieren.

Du bist Dir ganz sicher das Du PIC ASM schreiben kannst und willst ?
Bare Metal auf einem Pic ist nicht immer lustig.

von Sascha G. (sascha22)


Lesenswert?

Michael Knoelke schrieb:
> Sascha Giesler schrieb:
>> Blöde Fragen gibt es nicht
>
> Ähm, doch, gibt es.
>
> Du willst einen PIC programmieren.
> Wo meinst Du steht im Detail wie das geht ?
>
> a: Im Betriebshandbuch Deines Toasters
> b: Im Datenblatt zum PIC Mikrocontroller
>    - Datenblatt des exakten Typs
>    - Family Reference der PIC Familie
>    - Programmers Reference
>    - Dazu: Toolchain + Doku + Programmer
>
> Du willst wissen was ganz genau der PIC eigentlich an den Pins die zum
> SRF02/05 Sensor führen machen muss damit der überhaupt weis was Du
> gerade von ihm willst.
>
> Wo glaubst Du wird das stehen ?
>
> Du kannst natürlich auch den Bascom Code anschauen UND verstehen, dann
> weist Du was dem Mikrocontroller gesagt wird das er tun soll.
> Das kannst Du dann in einer Programmiersprache Deiner Wahl
> nachprogrammieren.
>
> Du bist Dir ganz sicher das Du PIC ASM schreiben kannst und willst ?
> Bare Metal auf einem Pic ist nicht immer lustig.

Ja, bin ich. :)
Kann ich nicht davon ausgehen das es irgendwo gut zusammengefasst wurde? 
Es existieren ja schließlich für fast jede Programmiersprache unmengen 
an Literatur aber wie es aussieht ist es wohl nicht so.

Trotzdem danke.

von Volker S. (vloki)


Lesenswert?

Sascha Giesler schrieb:
> Kann ich nicht davon ausgehen das es irgendwo gut zusammengefasst wurde?

Was soll man denn da groß zusammenfassen ?
Angenommen du willst im RS232 Mode messen
- Warten bis TXREG frei
   btfsc  PIR-x,TXIF ... Schleife
- Adresse schicken
   movlw  0x00    oder andere Adresse
   movwf  TXREG
- Wieder warten bis TXREG frei

- Befehl zum Messen schicken
   movlw  0x54    wenn du das Ergebnis in cm automatisch geliefert ...

- Warten bis das Ergebnis eintrudelt
   btfss  PIR-x,RCIF ... Schleife

- Ergebnis aus RCREG abholen
   movf   RCREG, W

von Sascha G. (sascha22)


Lesenswert?

Danke Volker, für deine Mühe. Das hat mir weiter geholfen. :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.