AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Hallo,
Hoe kan ik met een avr pulsen opwekken.
Bijvoorbeeld ik wil een timer maken die van 10 naar 0 telt.
Hoe zorg ik er dan voor dat die om de seconde verschuift ? (dus -1 seconde).
Hoe precies moet het? En moet de uc tussendoor nog wat anders doen?
for(x=10;x>0;x--){
delay 1s
}
Basis c...
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Ja misschien is het handig als ik wat meer info geef.
Het moet dus in basecom, en dan wil ik dat er elke seconden iets gebeurt.
Oke wat ik nu heb is dit :
waitms 1000
Dus wacht 1000 miliseconden.
Maar welke clock moet ik gebruiken zodat het werkelijk een seconde is ?
[Bericht gewijzigd door AVR_N()()B op (36%)]
Als je ongeveer een seconde wilt, ga dan voor de interne oscillator.
Als je een behoorlijk precieze seconde wilt, ga dan voor een extern kristal.
Voor 90% van de toepassingen voldoet de interne oscillator wel.
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Joeri de Man
LED there be light
Je kan natuurlijk altijd ijken hoeveel echte secondes er voorbij zijn gegaan.
Laat een led voor 1 minuut branden, en houd de tijd bij.
Stel dat het 50 echte seconden blijkt te zijn dan kan je ongeveer uitrekenen welke waarde je voor 1 seconde moet invullen.
60/50 = 1,2 seconden
Heyy..
Zou je het niet beter met PWM op kunnen lossen?
http://members.shaw.ca/climber/avrtimers.html
http://mil.ufl.edu/~achamber/servoPWMfaq.html
Suc6
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Oke met dat pulsen lukt nu. 
Maar nu wil ik graag een LCD aansluiten op mij avr.
Hoe moet ik dit doen ?
Het gaat om een attiny2313.
Voor de pulsen:
$regfile = "attiny2313.dat"
$crystal = 16000000 'pas aan naar de frequentie die jij gebruikt
'Pas wel onderstaande berekeningen aan dan!
config timer1 = timer, prescale = 256
'Timer1 is een 16 bits timer, telt dus tot 65535
'16000000/256=62500 ->62500 pulsen per seconde
'Beginwaarde timer1 = 65536-62500=3036
'Dus timer1 elke keer laden met 3036
On timer1 Aflopen_timer1
Enable interrupts
Enable timer1
Timer1 = 3036
config portd.1 = output 'even een willekeurige pen kiezen om de frequentie op te zetten
Do
'Zet hier je programma neer
Loop
Aflopen_timer1:
timer1 = 3036
toggle portd.1
return
Zo'n timer is VEEL precieser dan de wait instructies. Een wait instructie kan onderbroken worden door b.v. interrupts... Een timer blijft gewoon doortellen, wat het programma ook doet. Een klok opgebouwd met wait instructies kan na een dag meer dan een minuut afwijken. Eentje met bovenstaande code wijkt bij mij slechts enkele seconden af...
En voor je LCD:
Ik neem aan dat je een gewoon 16*2 LCD gebruikt...?
Je moet RS, E, DB4, DB5, DB6 en DB7 aansluiten op willekeurige IO pinnen van de AVR. R/W moet aan de massa, VCC aan de plus, VSS aan de massa en VEE aan een potmeter voor het contrast.
In je code zet je dan:
Config Lcd = 16*2
config lcdpin = pin, db4 = dejuistepin, db5 = dejuistepin, db6 = dejuistepin, db7 = dejuistepin, E = dejuistepin, Rs = dejuistepin
'dejuistepin moet je wel vervangen door de juiste pin he...
Cls
lcd "Dit is een test"
end

AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Kan ik je laatste stuk code ook vervangen in de bascom instellingen ?
Dus Options -> Compiler -> LCD.
En dan krijg ik een scherm waarvan sommige dingen vrij vanzelfsprekend zijn.
Maar ook een paar dingen die ik niet weet :
-Bus-mode, lijkt mij 8 bit maar dit weet ik niet zeker.
-Data-mode, lijkt mij pin maar ook dit weet ik niet zeker.
-LCD en RS adress, lijkt mij dat ik dit gewoon standaard moet laten.
Dus kan iemand mij hier nog wat info over geven ?
En welke componenten heb ik allemaal nodig.
Ik heb het volgende :
2 potmeters van 10k, 1 voor het contras van het lcd en 1 voor het backlight van het lcd.
Een ontkoppel condensator van 470nF.
En natuurlijk het lcd zelf 
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
- 4 of 8 bits mode kan allebei naar keuze...
- CS en RS lijnen in overeenstemming met de gebruikte pinnen...
- Backlight regelen met potmeter gaat alleen met een draadgewonden vanwege het stroomgebruik.(PWM is ook een mogelijkheid)
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Ik snap niet wat je bedoelt met :
- CS en RS lijnen in overeenstemming met de gebruikte pinnen...
Wat is de CS lijn dan ?
big bang
Niets is zo eerlijk verdeeld als verstand: iedereen denkt er genoeg van te bezitten
CS = chip select lijn
RS = register select lijn
Beide besturingslijnen van de LCD module.
- - big bang - -
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Alleen over de RS lijn kan ik iets vinden maar niks van de CS lijn.
Ik ga er dan maar vanuit dat deze niet belangrijk is.
Ik denk dat ik dinsdag wel mijn het lcd schermpje binnen heb.
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
Oke even een hele domme vraag maar ik ben ff vergeten hoe ik ook al weer die potmeter aan moet sluiten 
De loper moet op de contras pin van het lcd toch.
En dan op de linkse poot de + en de rechter + toch ? 
Voor de rest lees ik veel over intaliseren heb ik hier nog iets mee te maken of doet de avr dit zelf.
En heeft iemand misschien een basecom code voor het aansturern voor het lcd, dus gewoon een beetje de opbouw en de structuur enzo.
En maakt het uit op welke pin van avr ik de data lijnen van het lcd aansluit, want dit kun je ook instellen in bascom toch ?
Zit een zeer uitgebreide help file bij Bascom. Ook zijn er genoeg voorbeelden in de sample directory.
Daar kun je alles vinden wat je nodig hebt.
http://avrhelp.mcselec.com/config_lcd.htm
Wat voor nut heeft het om de linker en recht op de + aan te sluiten?
Gewoon potmeter tussen de + en - en contrast op de loper.
AVR_N()()B
Een FM zender van 5watt/5km is geen kleine zender | !
@Bas Smit: Inderdaad niet op gelet het moet dus + en - zijn ik verbeter het zo wel even.
Maar iniedergeval bedankt want hier kan ik iets mee !!!
@2N3055: Dankjewel inderdaad veel info daar.