hallo,

ik heb net AVR Studio gedownload, maar ik heb geen flauw idee hoe, of waar ik moet beginnen met het programmeren, en google leverde ook al niet veel op :'(

is er nou echt nergens een handige tutorial te vinden voor AVR Studio? of is die programmeertaal net dezelfde als een PIC?

edit: vb. ik wil een knipperlichtje maken, hoe begin ik aan de code ?

[Bericht gewijzigd door the-x op ]

kijk eens op de site van Marcel, die heeft een tutor staan.
één van de:
http://www.jelectronique.com/WinAVR.php

[Bericht gewijzigd door elektron_ op ]

hmmm, in het frans :'(

en AVR Studio is toch een asm programmer?

edit: en dat programmaatje is winAVR, en niet AVR Studio.

[Bericht gewijzigd door the-x op ]

AVR Studio is een ontwikkelomgeving voor zowel ASM als C. Voor C moet je wel eerst de AVRGCC compiler op je systeem installeren. Voor ASM is http://www.avrbeginners.net/ een goed begin. De ASM voor PIC en AVR komen in grote lijnen wel overeen, maar de AVR heeft wel een veel uitbebreidere instructieset. In de datasheet van je AVR staat de hele instructieset beschreven. Voor C heb ik een begin van een nederlandstalige tutorial geschreven. Zie link onderaan.

Op 15 april 2006 10:46:22 schreef the-x:
AVR Studio is toch een asm programmer?

AVR wordt meestal gebruikt om het resultaat van je programma
te bekijken in simulatie.
Je kan er ook een programma schrijven in assembly.
Je kan AVR Studio gebruiken als IDE voor WINAVR.

Voor wat wil je AVR Studio gebruiken ?
Ik vind het wel raar dat je eerst een programma installeerd
en U pas nadien afvraagd wat je ermee gaat doen ?
Ponyprog kan je gebruiken om te proggen.
( misschien kan het ook in AVR Studio )

haha,

ik wil met AVR Studio programmaatjes schrijven, vb. een knipperlichtje, het opslaan, en dan via een progje omzetten naar een .hex file.

edit: link van marcel is een hele goeie, er begint het een en het ander duidelijk te worden voor mij.

edit2: van alles wat ik nu al begrijp: kan dit programmaatje werken?


.NOLIST
.LIST
.DEF	mp = R16
;
;vanaf hier***
	rjmp	main
main:
	ldi	mp,0b11111111
	out	DDRB,mp
;***tot hier moet er altijd staan, dat wil zeggen dat je alle poorten op B als uitgang neemt.
; alles vanaf hieronder is dus eigenlijk het programmaatje!
;
loop:
	ldi	mp,0x00 		;hier zet je allemaal nullen in het register.
	out	PORTB,mp		;je neemt de nullen uit het register, en zet ze op de poorten B.
	ldi	mp,0xFF			;hier zet je allemaal enen in het register.
	out	PORTB,mp		;je neemt de enen uit het register, en zet ze op de poorten B.
	rjmp	loop		;rjmp wil zeggen ga naar. loop is de naam van het programmaatje dan.
;
; ldi betekend dat je een waarde zet in het register.
; out betekend dat je die waarde naar je poorten zend.

[Bericht gewijzigd door the-x op ]

moet je registreren, en zit al met zoveel accounts dat ik er zoveel mogelijk probeer voorbij te lopen :p

tja, maar ik heb tot nu toe nog geen last met gehad (spam ofzo) en het is echt wel een goede bron van info

ok.

hij staat allesinds al bij men bladwijzers.
ik heb net eindelijk mijn asm code in een .hex gekregen;

was vergeten .equ PORTB... & .equ DDRB... toe te voegen :p
compiler gaf steeds error van undefind symbol :D

Op 15 april 2006 22:44:51 schreef the-x:
ok.

hij staat allesinds al bij men bladwijzers.
ik heb net eindelijk mijn asm code in een .hex gekregen;

was vergeten .equ PORTB... & .equ DDRB... toe te voegen :p
compiler gaf steeds error van undefind symbol :D

Er is een include file voor elke AVR met die definities. Gewoon die file inlcuden en je hebt alle definities zoals ze in de datasheet gebruikt worden. Verder zal je code wel werken, maar wel zo snel dat je de LED niet ziet knipperen. Je hebt namelijk geen delay ingebouwd. Je LED gaat nu (afhakelijk van de snelheid van de AVR) met een paar honderd kHz knipperen.

als ik die file include, dan krijg ik de volgende error bij het compilen naar het .hex file:

E:\AVR programmer\AvrAssembler\Appnotes\8515def.inc(293): error: Attempt to redefine keyword 'or'

het gaat fout bij deze regel:

.equ	OR		=3

vandaar dat ik het appart in men code zet...

Men code... Lijkt alsof het iets met paarden voor een wagentje te maken heeft. Ga er toch maar vanuit dat het over iets voor een AVR gaat...

Welke taal gebruik je? Neem aan AVR assembly. Recent met de 2313 gewerkt, daar krijg ik die melding niet, staat dezelfde .equ in het includefile. Ik heb waarschijnlijk wel een wat oudere versie van AVRstudio, maar dat mag de pret niet drukken. Het is overigens de definitie van de overrunflag van de UART.

Type afhankelijke defines in je code definieren is 'bad practice'. Alles is zo lekker portable bij AVRs en dan ga je dat om zeep helpen door eea. hard in je source te zetten. Jammer hoor!

ik weet het Marco,

als je wilt, post jij eens even je 8515def.inc file.

ik zal die eens gebruiken, misschien geeft hij dan geen errors;

maar wat moet ik doen? ik weet niet waar de fout ligt :s

edit: ik weet het wel, maar ik weet niet wat er fout is, dus kan ik het ook niet oplossen...

[Bericht gewijzigd door the-x op ]

Die zal niet anders zijn dan de jouwe. Die 8515 is ook al wat ouder :)

Wat doet AVR studio als je een leeg file met alleen die include compileert? (wellicht heb je tenminste 1 statement nodig om het zinnig te laten lijken, maar dat kan zo moeilijk niet zijn).

Ik zit nu niet thuis, dus dat wil even niet. Geloof ook niet dat iemand het leuk gaat vinden als ik hier dat include file ga posten :) Mocht ik morgen (maandag) nog even de gelegenheid hebben, zal ik 'm je wel mailen...

knipperlichtje maken?
probeer deze eens..



.include "m8515def.inc"

.def temp = r16

Reset:
      ldi temp,High(RAMEND)
      out SPH,temp
      ldi temp,low(RAMEND)
      out SPL,temp         ; Stackpointer init
      ldi temp,$FF 
      out ddrb,temp        ; PortB = output
      
Start: 
       ldi temp,$00
       out portb,temp      ; PortB = 0
       ;rcall delay
       ldi temp,$FF
       out portb,temp      ; PortB = 255
       ;rcall delay
       rjmp Start
delay:

Om het te kunnen zien moet je zelf ff een wachtlus maken.
maar in de debugger kun je het zo zien..

zo te zien ben jij een stukje code vergeten :p

je begint met

delay:

en daar stopt het :D ook zie ik dat je die raadpleegt, maar er staat nix :p dus progje zal niet werken :D

edit: heb me net even bezig gehouden met mijn progje: mijn include file; ik heb die regel er gewoon uitgeknipt waar hij fout gaf, en nou is het gelukt... ;)

[Bericht gewijzigd door the-x op ]

Vaag verhaal.. Maar goed... Je hebt mail.

weer hetzelfde, error:

E:\AVR programmer\AvrAssembler\Appnotes\85152def.inc(295): error: Attempt to redefine keyword 'or'

doe ik dan dubbelklik op die errorregel; dan gaat hij naar deze regel in het include file:

.equ OR =3

nouja, ik heb gewoon die regel weggeknipt, en weer opgeslaan, en dan gaf hij die error niet. en alles werd weer gecompileerd dus... ik hoop dat dat geen probleem oplevert.

edit: ow ja, niet op het 2tje letten die ik erbij heb gevoegd, bij de naam van het file, ik wou gewoon mijn ander niet kwijt geraken ;)

[Bericht gewijzigd door the-x op ]

Dat je met dat file dezelfde melding zou krijgen, was natuurlijk wel te verwachten: het doet hetzelfde (als het al niet identiek is).

Heb je al eens op de site van Atmel of op AVR freaks gekeken of dit wellicht een rotje is in de versie van AVRstudio die jij hebt? Het is niet de bedoeling dat je dit soort files moet editen voor gebruik...

Voor nu heb je inderdaad een mooie work-around, maar grmbl.. Argh... :)

als ik mijn error intik op google, krijg ik meldingen van programma's die ik nog nooit gezien heb :p

heb geen zin om daar de AVR Studio meldingen te gaan uitzoeken, terwijl je dan nog steeds niet zeker bent of er een oplossing instaat... :p

edit: kon het niet laten om het nog eens te proberen :p
je hebt gelijk, bugje in AVR studio, eens zoeken naar een update.


Assembler 2 is still buggy.

Attempt to redifine keyword OR
.equ OR =3
The above line is in the 8535.inc file

komt van AVR Freaks forum.

edit2: ja lap: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725
ik heb de nieuwste versie.

[Bericht gewijzigd door the-x op ]

Slordig van Atmel... Je hebt een work-around, met 1 of 2 weken zal er wel een fix zijn voor zoiets elementairs.

ok thx.

btw, heb jij een AVR?
zou je dan eventueel ( hoeft niet hé, gwn om te kijke of men progje werkt ) deze code eens in je AVR willen laden:

:020000020000FC
:1000000000C00FEF07BB00E008BB0FEF08BBFBCF42
:00000001FF

sluit gewoon een led aan, op een B-poort met een voorschakelweerstand. dat is de schakeling;

maar nogmaals, als je niet wilt hoef je niet ;)

Op 16 april 2006 23:46:48 schreef the-x:
zo te zien ben jij een stukje code vergeten :p

je begint met

delay:

en daar stopt het :D ook zie ik dat je die raadpleegt, maar er staat nix :p dus progje zal niet werken :D

nee hoor ;-) ik roep het niet aan, het staat als commentaar..

alhoewel er moet nog wel een ret achter ja..

Maare je hebt het al gevonden.. ik had ook zoiets met de tiny13. erg vervelend van atmel :S

Het leuke van die .def files is dat je code compatible is met verschillende AVRs. Of rauwe hex ook zomaar goed gaat? als de hardware niet te veel verschilt, zal het wel... Naar alle broodplanken zijn bezet. Zo spannend kan die source toch niet zijn dat je niet weet wat het doet?