Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: RN-Motor an I2C-Bus Kategorie: C-Control I V1.2/2.0 (von Windt H.J. - 5.07.2005 19:00)
 Als Antwort auf Re: RN-Motor an I2C-Bus von Gaston - 5.07.2005 17:48
Hello,
Thats great!!
But this does mean that the pdf file of the RN-Motor is not correct.
Greetings,
H.J. Windt




> Hello again,
>
> That was the problem! Now everything works fine.
> I have implemented the changes to my programm and reading out the number of steps is no longer a problem.
>
> Thank you very much for your great help!!!
>
> Gaston
>
> > Hello,
> > I have already looked into this forum to see if anybody had troubles reading the steps taken but did not find anything.
> > It looks like that basic++ is a mix of basic and c++, I looked at the code but I donÂ’t like what I see, the code does not take I2C clock stretching into consideration, this is really important if you are using micro controller based slaves, my code does.
> > Also, to make an i2c port go HIGH you do not sda = 1 or sda = on, I think this is not good, you must deact sda, the pullup resistor will do the rest.
> >  
> > I want to try something else, replace the code with the code below, and let me know if this works.
> > Greetings,
> > H.J. Windt
> >
> >
> >
> > #read_motor_steps_taken
> > if motor_selection > 1 then print "Cant read both motors at the same time!!"
> > if motor_selection > 1 then goto start
> > gosub start_i2c
> > i2c_byte = &h56 : gosub write_byte_i2c
> > i2c_byte = 10 : gosub write_byte_i2c
> > i2c_byte = 13 : gosub write_byte_i2c
> > i2c_byte = motor_selection : gosub write_byte_i2c
> > gosub stop_i2c
> > if i2c_nack then goto pass_read
> > gosub start_i2c
> > i2c_byte = &h57 : gosub write_byte_i2c
> > gosub read_byte_i2c : low_word = i2c_byte
> > gosub read_byte_i2c : low_word = i2c_byte * 256 + low_word
> > gosub read_byte_i2c : high_word = i2c_byte
> > gosub read_last_byte_i2c : high_word = i2c_byte * 256 + high_word
> > gosub stop_i2c
> > #pass_read
> > if i2c_nack_count > 18 then goto no_ack_from_i2c_device
> > if i2c_nack then goto read_motor_steps_taken
> > print"HIGH word = ";high_word;" Low word = ";low_word
> > goto start
>

 Antwort schreiben

Bisherige Antworten:

Re: RN-Motor an I2C-Bus (von Gaston - 7.07.2005 16:00)