Seh ich einen I2CInit ?
Haallo,
habe ein Problem mit I2Cwbyte: hier ist mein programm, aber ab clock pin kommt nur immer ein negativer impuls raus (pullups habe ich dran). habe ich was falsch gemacht?
$regfile = "m128def.dat"
$crystal = 1000000
Config Portd = Output
Config Sda = Portd.1
Config Scl = Portd.0
Config I2cdelay = 100
Do
I2cstart
I2cwbyte &H70
I2cwbyte 8
I2cwbyte 1
I2cwbyte &H41
I2cwbyte &H42
I2cwbyte &H43
I2cwbyte &H44
I2cwbyte &H45
I2cwbyte &H46
I2cwbyte &H47
I2cwbyte &H48
Wait 1
Loop
End
Seh ich einen I2CInit ?
Ich da´chte der wär nicht unbedingt von nöten?
Stimmt schon, solange das ganze übersichtlich ist. aber normalerweise sind deine Pins für den Print da, und wer weiß schon, was der Kerl tut ?
EDIT Nehm ich zurück, du hast ja einen 128
Sonst fällt mir nur auf, daß das Delay mit 100 schon recht hoch ist
Stimmt es, daß du mit 1 MHZ fährst ?
Kontrolliere, ob er bei i2Cstart den Bus auch übernehmen kann (ERR <>0)
Vorsicht: Ich hatt auch schon einen Neuen Mega, wo die I2C-Pins kaputt waren
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
der mega scheint nur mist zu machen. aber wieso? fuses sind auf internal 1mhz und habe das folgende froggi mal gebaut um die ports zu testen
do
set portb.0
waitms 250
reset portb.0
waitms 250
loop
end
der port bleibt dauerhaft high (gemessen mit oszi direkt am port). drücke ich reset setzt er kurz zurück
Wenn der Pin auch auf Output gesetzt war (?) , dann scheint das wirklich auf technische Probleme hinzuweisen.
Gibts einen test-alternativ-Mega ?
(wenn das Port kaputt ist, ist aber seltsam, wie er es dann bei reset schafft)
.. nach dem letzten I2Cwbyte sollte noch ein I2Cstop kommen.Zitat von sebastian.heyn
Schau mal in die Bascom-Hilfe unter Stichwort "I2CStart"
mfg Gerhard
Hi
Hm. Bau mal wie gesagt i2cinit und i2cstop ein...
Den Port musst du meines Wissens nicht als Ausgang schalten, macht BASC. glaub ich autmomatisch. ?!?! K.A.
Mach mal ein
disable interrupts
in deinen Code, weil SCL und SDA beim M128 doppelt mit INT0 und INT1
belegt sind.
Ich habe auch Probs mit der Softwareemulation.
Werd das mit der Hardware lösen.
Liebe Grüße,
Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Habe jetzt mal nen anderen PORT genommen
Ich bin doch nicht zu blöd, oder? das signal bleibt immer high an allen pins des ports
$regfile = "m128def.dat"
$crystal = 1000000
Config Porte = Output
Do
Porte = 255
Waitms 250
Porte = 0
Waitms 250
Loop
End
EDIT!!
Habe den Fehler gefunden!!!!!!
Man muss die fuses auch so setzen das der 128er nicht im 103 modus läuft!! Wie blöd muss man sein!!
Jetzt glaub ich bald, daß der ganze Mega nicht läuft (irgendwas mit dem Oszillator)
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen