BASCOM-AVR -- alternative zu shiftin/shiftout??

Gast #38950
Lesenswert?

Hi Leute!

Ich glaub bei meinem Programm will das Shiftin/Shiftout nicht richtig.
Bei Shiftout soll die Datenleitung auf Null runtergezogen werden, aber
das passiert nicht. Es gibt nur eine Absenkung von 5 auf 2,5Volt und
nicht auf 0V, dadurch denke ich, passiert was, dass ich keine
eindeutigen Signale und Daten von meinem Sensor bekommen, der uaf das
eindeutige absenken auf 0V erfordert. Ein zusätzliches Reset hat nichts
getan, es sieht nun wie eine Treppe aus.
Meine Frage ist nun, hat jemand eine Idee, wie man dies umgehen kann,
oder hat jemand eine Vorgehensweise parat, die Shiftin/Shiftout
ersetzten könnten.

Vielen dank im Voraus.

Bye, kris :-)
Gast #38952
Lesenswert?

Hi Forest!

Vielen dank für deinen gut gemeinte und echt gute Idee, doch leider
glaube ich, dass dies nicht zu realisieren ist, da ich zwischen sensor
und mikrocontroller auf der datenleitung schon einen pullup widerstand
habe, der in dem datenblatt punkt 2.2.2
(http://193.196.117.123/projekte/saunaaufgusssteuerung/sensor/datenblatt_sht11_d_lo_0202_a.pdf)
gefordert ist und ich habe ihn eingebaut, da sonst nix funktioniert
hat.
ich habe zusätzlich och ein max232 auf der platine und einen 7805.
ne idee, wo ich deinen pulldownwiderstnd hinbauen könnte, da ich glaube
pullup und pulldopwn gleichen sich aus, wenn ich des recht evrstehe???

mfg
Kris :-)
Gast #38953
Lesenswert?

Was für ein MC benutzt du denn? Denn wenn der MC von sich aus schon mit
Pull-up widerständen ausgestattet ist, und du dann auch noch pull up
widerstände dranhängst, kann es sein das der Strom der datenleitung
nicht mehr ausreicht um die Spannung auf 0V herunter zu ziehen.
Gast #38955
Lesenswert?

Hab gard in euern Projekt rumgestöbert. Ihr habt den 80c535 benutzt
oder? Im Datenblatt steht der hat an einigen Datenleitungen pull up
widerstände intern. Nehmt einfach die Widerstände aus der Schaltung
raus, und probiert es.
mfg
Gast #38957
Lesenswert?

Hi,

eine andere Alternative waere sich einen eignen Shiftout / Shiftin
Befehl zuschreiben.

Beispiel:
8 Bit Shiftout

temp = &b00001111
for i = 1 to 8
if temp.0 = 1 then
reset portc.0
waitms 100
else
set portc.0
waitms 100
end if
shiftright temp.0
next i

Es ist nur ein kurzes Beispiel sollte sich aber fuer deine Zwecke
umschreiben lassen.

Mfg

Dirk
Gast #38958
Lesenswert?

danke an euch beiden und an alle noch kommenden

zu forest: meinst du ich sollte da meinen pull-up- als pull-down
verwenden?

zu dirk: des funktioniert, aber er macht danach nichts mehr. der sensor
hat auch einen clock, der ist in dieser zeit inaktiv, meinst du ich
sollte damit mal was amchen?

mfg und schönen abend. viel spaß beim schwitzen .-)

kris
Gast #38960
Lesenswert?

Hi, nochmal
Ich meinte du kannst dein Pull up aus der schaltung ausbauen!
Der ATmega8 hat an seinen Port's schon pull up widerstände, alles in
dein winzig kleinen schwarzen Gehäuse :o) schau doch mal in das
Datenblatt (http://www.atmel.fi/dyn/general/tech_doc.asp?doc_id=7252
Seite 5)

@Dirk hättest du das Posting aufmerksam mitverfolgt, hätte sich deine
Letzte frage erübricht!

mfg
Gast #38961
Lesenswert?

Hi,

oh hab es uebersehen. Du solltest aber auf jeden Fall die SCK und SCL
Leitung mit einem Pullup von 4k7 versehen. Programmbeispiele fuer
Bascom findet man auf der Kuehnel HP. ABER WIESO benutze fuer Bascom
nicht die I²C Bus Routinen, da der SHT1x ein I2CBus Baustein ist. Man
kann es aber auch mit dem Shiftout und Shiftin Befehl machen, dann muss
man sich aber an das I2C Bus Protokoll halten (Start/Stopbedingungen
usw.)

Mfg Dirk

Mfg

Dirk
Gast #38962
Lesenswert?

Hallo und einen lieben Dank!

An Dirk:

     SCL = DATA???

     kann ich auch einen 10kohm Pull-up verwenden??

     was für routinen meinst du???

     kannst du mir bitte einen konkreten link geben??

An Forrest:

     wenn ich die pull-ups rausnehme, funktioniert nix mehr.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren