@rapo : HER DAMIT =) wenn du nur mal ein kurzen blick in die suchfunktion wirfst und nach dem thema hier suchst, wirst du merken, wie gross das interesse daran ist!!
Hi,
also ich hab wirklich großes Interesse daran, hab allerdings noch keine Ahnung wie das mit den Registern gehen soll - hab auch noch fast nix mit Bascom gemacht, das werd ich die Tage mal probieren.
Aber ich denke nicht nurich wäre dir dankbar, sondern auch viele andere - man liest im Forum ja immer wieder etwas über das Thema.
Artikel können da geschrieben werden:
https://www.roboternetz.de/phpBB2/artikeluebersicht.php
(dann der Link ganz unten)
Ist ja wie ein normaler Forenbeitrag.
Anderer Vorschlag:
Kannst das auch mal in einem neuen Thema starten, ich les mir das durch und versuch es nachzuvolziehen, da ich ein Anfänger bin werd ich über so ziemlich alles mögliche stolpern, dann können wir darüber diskutieren und wenn alle unklarheiten beseitigt sind, kannst du den fertigen Artikel dann posten
@rapo : HER DAMIT =) wenn du nur mal ein kurzen blick in die suchfunktion wirfst und nach dem thema hier suchst, wirst du merken, wie gross das interesse daran ist!!
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
@Blood: wen du die Slave Lib vin MCS verwendest must du nichts von registern verstehen... verstehe auch nix davon
bei aktivitäten auf dem I2C bus werden einfach die entsprechenden ISR Rutinen aufgerufen...
hier mal ein kleiner code wie ich es gemacht habe um 2 bytes im slave zu empfangen... ich hoffe man versteht es...
Code:'die variable empfangen wird auf 2 bytes definiert wenn mehrere bytes empfangen werden sollen muss diese entsprechend erhöt werden... Dim Empfangen(2) As Byte Dim Index As Byte 'Hier wird die adresse für den Slave gesetzt Config Twislave = &H70 , Btr = 1 , Bitrate = 100000 Enable Interrupts Do nop Loop End Twi_stop_rstart_received: 'Master hat Stop oder restard gesendet Return Twi_addressed_goread: 'wir wurden adressiert und master will daten lesen Return Twi_addressed_gowrite: 'wir wurden vom master adressiert und der master will bytes senden 'variable index auf 0 setzen Index = 0 Return Twi_gotdata: Incr Index 'Index wird bei jedem empfangenen byte erhöt empfangen(1) enthält das erste byte empfangen(2) das zweite byte Empfangen(index) = Twi 'twi enthält das momentan empfangene byte Return Twi_master_needs_byte: Return Twi_master_need_nomore_byte: Return
mm warum nimst du nich tden canbus her ich wollte auch erst meine mcu's über I2C kommuniziren lassen aber das is nicht so die gute idee das bringt nur bugs mit sich - das fuchst mich wie sonst noch was.
das master slave prob hab i so gelöst, mit nem interrupt der slave sendet nen interrupt wenn der slave daten für den master hat.
hmm... ich hab mal mit dem Gedanken gespielt einen Interrupt zu nutzen, dessen Routine ein Datenwort im Takt der SCL-Leitung nach links schieben bzw, rotieren und den jeweiligen Zustand der SDA-Leitung in das LSB eintragen lässt.
Also ich kann kein CAN benutzen, weil der andere Mikrocontroller das nicht kann :/
jo es gibt doch dafür can controller! wie mcp2515 und der tranciver mcp2551
der kommt an den spi bus ran.
für paranelen gibt es den SJA1000 (philips)
viel spaß
@Bluesmash
Dieses Label gibts doch gar nicht in der LIB, oder - jedenfalls find ich nix darüber:
Irgendwie rätselhaft ist mir das ganze aber schon noch - kommt vielleicht noch.Code:Twi_addressed_gowrite: 'wir wurden vom master adressiert und der master will bytes senden 'variable index auf 0 setzen Index = 0 Return
Irgendwie ist mir nicht klar, wie ich auf der Slave-Seite unterscheiden kann, ob ich jetzt mit der LESE- oder SCHREIB-Adresse addressiert wurde.
@tuxilein:
ich hab am anderen Mikroncontroller auch kein SPI oder so - und da ich wenigstens schon was über I2C geschickt hab und es auch angekommen ist, bleib ich bei I2C
@BlooD,
verstehe ich würde ich auch machen, wenn schon mal was geht.
Und bei zwei MCU's is das kein prob nur i habe mehr MCU's und brauch für fas für jeden einen i2c!
@Blood: ich sende vom master aus: I2csend 10 , Daten(1) , 2
damit wird im slave mit der adresse 10 als erstes die Twi_addressed_gowrite: ISR aufgerufen da der slave adressiert wurde und der master daten senden will danach werden die daten in der Twi_gotdata: die daten in der Twi variable bereitgestellt...
ich hoffe das hilft dir weiter... gruss bluesmash
Lesezeichen