Hallo, ich bin gerade an meinem ersten AVR Projekt mit ATmega128l, also blutiger Anfänger. Ich habe folgendes Problem, ich versuche mit zwei Pin Zustande von zwei Kontakten auszulesen. Und wenn Jumper nicht gesetzt ist, geht dass auch ohne Probleme mit den Code: volatile uint8_t tmp; init_usart1(); InitTimer(); asm("sei"); PORTD |= ( 1 << DDD1 ) | ( 1 << DDD2 ); DDRD &= ~(( 1 << DDD1 ) | ( 1 << DDD2 ); while(1) { if ( !(PIND & ( 1 << PIND1 ))) { tmp = PIND; USART1_PRINTF("DATA:"); USART1_PUTCHAR(tmp); USART1_PUTCHAR(0x0D); USART1_PUTCHAR(0x0A); } } Aber wenn Jumper gesetzt ist, dann läuft Device Amok. Es passiert weil zwei Pull-up PINs auf einem Draht hängen. Meine Frage lautet, wie lese ich Zustande wenn sie beide auf einem Draht sind. Schema: VCC 3,3V | --------- | uC-Pin --- | o (Jumper) o | uC-Pin --- | --------- | GND Gruß, Artur
Hallo, also ich sehe in Deiner Schaltung nur einen Kurzschluß zwischen VCC und GND wenn der Jumper gesteckt wird... Da würde ich (zumindest als Stromversorgung) auch Amok laufen. Gruß aus Berlin Michael
Machs so: Schema: VCC 3,3V | - | | 47k | | - | uC-Pin --- | o (Jumper) o | | --------- | GND Ohne Jumper ist der uC-Pin high (Pullup 47k), mit gestecktem Jumper wird er auf low gezogen. Der Strom wird über den 47k begrenzt.
>Meine Frage lautet, wie lese >ich Zustande wenn sie beide auf einem Draht sind. Da denkst Du verkehrt. Pro digitalem Pin (= "Draht") kannst Du auch immer nur einen binären Zustand einlesen --> Für N Jumper musst Du N µC-Pins opfern. Durch Verwendung eines "analogen" Pins (d. h. einer, der mit dem ADC Deines µCs verbunden ist) kann man die Zustände mehrerer Jumper mit einem einzigen Pin einlesen. Dazu benötigt man dann noch mehrere, geschickt gewählte Widerstände.
Hallo ich bin es noch Mal: Kann ich so machen? Schema: VCC 3,3V | | _ | uC-Pin ---|___|--------| 47k | o (Jumper) o | _ | uC-Pin ---|___|--------| 47k | | | GND Wenn ja, soll ich die AVR internen Pull-UPs einschalten oder nicht? Es kann sein dass ich ganz dumme fragen stelle aber finde einfach keine Antwort auf meine Frage deswegen bitte ich um Gnade, weil ich wirklich keine Ahnung von Elektrotechnik habe. Gruß, Artur
Nein, du kannst es so nicht machen!!!! Das ist doch das gleiche Problem wie am Anfang. Durch den Jumper bekommst du zwischen Vcc und Gnd einen KURZSCHLUSS!!!! Sag doch erstmal was du machen möchtest, vielleicht denkst du einfach auch in die völlig falsche Richtung. Möchtest du durch einen Jumper zwischen zwei Zuständen unterscheiden?
Und noch was, ich will nur wissen ob der Strom fließt oder nicht, mehr will ich nichts wissen. Und es ist richtig dafür brauch man nur noch 1 PIN, aber meine Schema ist ein Tick anders, deswegen muss ich auf beiden seiten sicher sein das da kein Strom ist. Danke noch Mals für alle!
Bei deiner letzten Schaltung passiert folgendes: Ohne Jumper µC Pin oben : High µC Pin unten: Low Mit Jumper µC Pin oben: Low µC Pin unten:Low Spannungsversorgung des µC: Low Es fließt ein unbegrenzter Strom von Vcc über deinen Jumper nach GND -> Kurzschluss -> µC bekommt keine Versorgungsspannung (außer die ist von dieser unabhängig) -> µC geht aus -> Spannungsversorgung geht kaputt/Sicherung fliegt/Strombegrenzung lässt die Ausgangsspannung auf 0V abfallen. Sag uns was du genau machen willst dann können wir dir helfen. So wie du geschrieben hast macht die Schaltung keinen Sinn. (da kannst du auch die zwei Widerstände weglassen) gruß Matrix
>aber finde einfach keine Antwort auf meine Frage Wie lautet denn Deine Frage? >ich versuche mit zwei Pin >Zustande von zwei Kontakten auszulesen. Und wenn Jumper nicht gesetzt ist, Kontakte? Jumper? Sind das zwei Wörter für dieselbe Sache, oder soll das was verschiedenes sein? Du redest von zwei Pins und zwei Kontakten (= Jumper??) aber ich sehe in Deinen Skizzen nur zwei Pins und einen Jumper. Wie passt das zusammen? >meine Schema ist ein Tick anders, deswegen muss ich auf >beiden seiten sicher sein das da kein Strom ist. Das ist mir völlig unverständlich. "Auf beiden Seiten sicher sein, dass..."? Was soll das bedeuten? Allgemeiner Tipp: Drück Dich KLAR aus, das macht die Sache für alle sehr viel einfacher.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.