Guten Abend, jetzt häng ich schon 2 jahre mit Assembler an dem 2313... ... und scheine eintweder einen Blackout zu haben oder habe immer noch nix begriffen... also folgende Problematik: ich habe an einem 2313 2xSHT11 verbunden (sind so lala I2C sensoren) SCK an PD6 - beide und (weil die sensoren keine unterschiedliche Anschriften haben) einen auf PD4 einen auf PD5 ... jo, war auch kein thema - der rcall "GetTempAndHumid" ist fertig, aber nur für einen sensor (ist abgekupfert)... jetzt will ich beide Sensoren über einen Parameter steuern so in der Art: ... ldi parameter, PD4 rcall GetTempAndHumid ... aber... in "GetTempAndHumid" sind ne menge cbi's und sbi's: ... cbi PORTD, PD4 ;low output sbi DDRD, PD4 ;output ... und sbi und cbi will ja nicht mit Registern grrr was jetzt bin ich malle oder muss ich jetzt jeden sbi und cbi einzeln so umgehen: ... cpi parameter, 4 brne ist5 cbi PORTD, PD4 ;low output rjmp war4 ist5: cbi PORTD, PD5 ;low output war4: ... das sieht zu schmutzig aus! Bitte um Erlösung! MfG, Frank Wolf
Lad den Portinhalt in ein Register und nimm dort mit AND/OR die entsprechenden Veränderungen vor. Also einfach in r16,PORTD and r16,parameter out PORTD,r16 Wobei 'parameter' natürlich nicht die Bitnummer sondern die Bitwertigkeit enthalten muss.. Und bei AND ans Invertieren denken!
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.