met een avr basic programma schrijf ik een simpele routine
die ik dan stuur naar een avr die op een stk200 board staat, ik maak gewoon een lichtje die loop met de ledjes , maar deze werken geinverteerd , als het ledje niet moet branden , brand het en als het moet branden , brand het niet , iemand een idee ???

Wat is nu eigenlijk je vraag???
Het kan ook gewoon zijn dat op je bord de LEDs met hun anode aan de voeding hangen ipv met de kathode aan de grond (andere kant dus telkens naar je MCU). maar dat moet toch in de userguide staan? Heb je daar als eens gekeken.

Moet je de LEDjes niet invers aansturen, t.t.z. met een "0" doen oplichten, en een "1" uit? Inverteer eens de sturing van de LEDjes, met de logical operator NOT.

AVR basic? Bascom AVR bedoel je? Iets meer informatie zou wel handig zijn. Heb je een voorbeeld van dat programma? En kan je aangeven hoe je de LED's hebt aangesloten (eventueel met een schema).

Hieronder het bascom programma

---------------------------------

Dim A As Integer
Dim Knop As Integer
A = 1
Config Portb = Output
Config Portd = Input
Knop = Pind.1
While Knop <> 0
Portb = A
A = A + 1
If A = 256 Then A = 1
Waitms 500
Wend
End
-------------------------------------
de leds en de 2313 zijn aangesloten op een stk-200

mvg
helmut

Je hebt zo geen looplichtje maar een binaire teller voor je LED's (ik weet niet of dat de bedoeling was).
Als je LED's aan gaan als ze uit moeten zijn en vice versa, dan moet je gewoon de LED's omdraaien.
Waarschijnlijk heb je de LED's nu tussen de poort en de GND hangen.
Gewoon dus de - van de LED's aan je controller en de + van de LED aan de +5V hangen.

dit zou eenvoudig zijn, ware het niet dat deze leds vastgesoldeerd zitten op het dev Board

Ik ben niet bekend met de STK-200. Ik plaats AVR's altijd op een breadbordje. Maargoed, de LED's zitten dus vast op het bordje, dan moet je het dus softwarematig oplossen.

Om te inverteren heb je in Basic de NOT operator. Die heeft Bascom vast ook wel.

Voorbeeld van een looplichtje. Er zou een syntax foutje in kunnen zitten, want het is lang geleden dat ik in Basic heb geprogrammeerd. AVR's programmeer ik altijd in C.


Dim A As Integer
Dim Knop As Integer
A = 1
Config Portb = Output
Config Portd = Input
Knop = Pind.1
While Knop <> 0
Portb = NOT A
A = A * 2
If A = 256 Then A = 1
Waitms 500
Wend
End

Op 16 maart 2004 21:07:41 schreef Frits Kieftenbelt:
Waarschijnlijk heb je de LED's nu tussen de poort en de GND hangen.

Ik denk juist andersom. Want als de LED's tussen poort en GND hangen, dan werkt het 1 op 1. Poort hoog, LED aan. Poort laag, LED uit. Als de LED's tussen VCC en de poort zitten, dan is dat het juist andersom. Daarom vermoed ik dat in de huidige situtie de LED's tussen VCC en de poort zitten.