Ik heb een Ontwikkelingsbordje gemaakt voor een at90s2313. het werkt allemaal prima maar als ik in bascom het volgende in de µC programmeer:


Config Portb = Output
Portb = 1
End

dan moet er dus 1 ledje gaan branden (in mijn geval zou het de meest linkse zijn) Maar nu gaan alle ledjes branden en gaat de meest linkse uit...

Ik heb dit schema gebruikt.

De schakeling klopt verder helemaal, dus zou het een instelling in bascom kunnen zijn? (had al een keer uren zitter staren op m'n printje omdat hij 't niet deed, maar bleek ook een software instelling van bascom te zijn... |:( )

nb, wegens ruimte gebrek op het printplaatje zijn de ledjes andersom gerangschikt, dus D1 zit op pin 19, D2 op 18, D3 op 17 enz.

Dat komt omdat op de pin die je aanstuurt 5V (hoog dus) komt te staan. De LEDs zijn geinverteerd aangesloten omdat de AVR 20mA kan SINKEN en dus zo zonder transistoren LEDs kan aansturen!

Als je dus een pin 1 maakt (5V) zal de LED dus juist niet branden omdat de andere kant van de LED ook (via een weerstand) aan de plus hangt! Simpel, maar soms verwarrend. :)

Op 9 april 2003 14:39:40 schreef Ralph Benadski:
Dat komt omdat op de pin die je aanstuurt 5V (hoog dus) komt te staan. De LEDs zijn geinverteerd aangesloten omdat de AVR 20mA kan SINKEN en dus zo zonder transistoren LEDs kan aansturen!

Als je dus een pin 1 maakt (5V) zal de LED dus juist niet branden omdat de andere kant van de LED ook (via een weerstand) aan de plus hangt! Simpel, maar soms verwarrend. :)

ok, dus als ik het goed begrijp is er niks mis met de µC, schakeling of software. Maar klopt het juist dat ze geïnverteerd zijn omdat de schakeling zo in elkaar zit?

Maar als ik nu iets anders op de pinnetjes die in serie staan met het ledje en de µC, en ik wil dan bv pin 17 hoog hebben, dan volstaat dat niet met 'portb = 32' maar moet ik 'portb = 223' doen.

Klopt dat? of denk ik nu in de verkeerde richting?

- edit: -

Of zal ik de ledjes aan de ene kant op de GND aansluiten ipv op de plus?

Juist voor LEDs rechtstreeks dus 255 - 32 = 223! Dan zal het wel goed gaan! :)

Ik wou het bordje zo krijgen dat ik precies zie wat is geprogrammeerd heb.
Kan ik dat dan voor elkaar krijgen door een extra weerstandje op deze manier in de schakeling te zetten?
http://www.expandctss.com/upload/download.php?file=weerstanderbij.gif
hierdoor wordt dan het voltage minder aan de 'bovenkant' waardoor de ledjes die aan moeten gaan, ook aan gaan en niet meer geïnverteerd worden.

Of moet ik het anders aanpakken?

Wel eens gehoord van one's complement?
inverteerd de bits in de byte
bv: com r1
Binair is toch moeiliker als je dacht!

Maar ik kan dus niet, zoals op het plaatje hierboven, er een weerstandje tussen doen?

Je kan de LEDs omdraaien en dan de kathodes (die nu aan de kant van de weerstanden zitten en dan dus niet meer) aan de min hangen. De outputs van de AVR kunnen zo'n 3mA positief sturen, dat zal met deze weerstanden wel goed gaan! :)

Op 10 april 2003 11:04:49 schreef Ralph Benadski:
Je kan de LEDs omdraaien en dan de kathodes (die nu aan de kant van de weerstanden zitten en dan dus niet meer) aan de min hangen. De outputs van de AVR kunnen zo'n 3mA positief sturen, dat zal met deze weerstanden wel goed gaan! :)

ok bedankt! :)

* L.Mo warmt de soldeerbout al op

Op 10 april 2003 11:04:49 schreef Ralph Benadski:
De outputs van de AVR kunnen zo'n 3mA positief sturen

Dat heb jij geloof ik wel vaker geroepen, maar hoe kom je daarbij? Ik stuur gewoon als uitgang mijn ledjes aan die aan de gnd hangen en dat gaat best.

Dit zijn de algemene regels (voor een 2313). Hieruit heb ik dus die 3mA geplukt.
http://www.expandctss.com/upload/download.php?file=rules.gif

Je kan 20mA uit een AVR sourcen, maar dan zal de uitgangsspanning rond de 1V liggen, niet echt netjes.
http://www.expandctss.com/upload/download.php?file=graphs.gif

Mooi zo :)

'k heb de ledjes omgedraaid en ze aangeslotewn op de GND, en ze doen het weer prima!

Bedankt!