Pagina 2 van 3
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 10:25
door Pjotr
Neem aan dat je in C programmeert? Is dan een kwestie van je make file configureren zodat ie hex code genereert op een bepaald start adres. Hier is Knuis bekender mee denk ik.
Zelf programmeer ik uitsluitend in assembler met de (gratis) IAR assembler compiler en dan heb je alles zelf in de hand. Is wel meer werk maar zo prop je wel 2 a 4 keer zoveel in zo'n kleintje dan in C.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 10:42
door SuperR
Pjotr schreef:Neem aan dat je in C programmeert? Is dan een kwestie van je make file configureren zodat ie hex code genereert op een bepaald start adres. Hier is Knuis bekender mee denk ik.
Zelf programmeer ik uitsluitend in assembler met de (gratis) IAR assembler compiler en dan heb je alles zelf in de hand. Is wel meer werk maar zo prop je wel 2 a 4 keer zoveel in zo'n kleintje dan in C.
Ga er voor het gemak vanuit dat ik enkel Arduino kennis heb en geen andere software dan de Arduino IDE, wat is dan een goede route om te volgen? Ik hoopte er op dat ik in een programma wat C kon typen, aangeven dat het voor een tiny13A is en dat hij er dan een hex uit spuwt die ik met avrdude kon uploaden.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 10:46
door Pjotr
Denk dat je dan beter Knuisje even wakker kan schudden
Overigens als je Googelt op "Programming AVR in C" of zo, kom je ook heel veel handleidingen en tutorials tegen.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 11:39
door Rudy
AVR studio of de combinatie notepad++/winavr/externe programmer is de meest voordehand liggende, gratis en goed gedocumenteerd op het internet.
Onder de betalende varianten heb je nog IAR en codevision. ( en waarschijnlijk nog 10 anderen .. )
Maar je zal snel merken dan deze stap een vrij grote is, en je effektief zal moeten leren datasheets te lezen en te begrijpen zowel voor de fusebits als voor delen van de code voor timers/interrupts/uarts/ADC's ...
mvg Rudy
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 12:09
door Pjotr
Een heel aardig boek om daarin thuis te raken met goede hands-on oefeningen is dat van Joe Pardue:
http://www.pdfbook.co.ke/details.php?ti ... &popular=7
Moet je alleen nog zo'n AVR Butterfly bordje zien te regelen (Alcom Electronics). Of hier bestellen:
https://store-jwm4nhbo.mybigcommerce.com/butterfly-1/
http://nl.mouser.com/ProductDetail/Atme ... Ik74aEQ%3d
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 17:22
door SuperR
Ik heb net een officiële AVR Dragon aangeschaft. Dan doe ik alles via de door Atmel geadviseerde manier in AVR Studio. Misschien zijn er betere/goedkopere methodes, maar er zijn goede AVR studio tuts, dus ik kies die weg.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 17:40
door Pjotr
SuperR schreef:Ik heb net een officiële AVR Dragon aangeschaft. Dan doe ik alles via de door Atmel geadviseerde manier in AVR Studio. Misschien zijn er betere/goedkopere methodes, maar er zijn goede AVR studio tuts, dus ik kies die weg.
Zow, maar gelijk in het diepe gesprongen en dan maar zien of je zwemmen kunt?
Dat kan natuurlijk ook. Mooie van die Dragon is is dat je gelijk een goede programmer hebt

Overigens dat boek wat ik hiervoor aanhaalde legt goed uit hoe je in C de diverse registers instelt.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 17:56
door SuperR
Pjotr schreef:SuperR schreef:Ik heb net een officiële AVR Dragon aangeschaft. Dan doe ik alles via de door Atmel geadviseerde manier in AVR Studio. Misschien zijn er betere/goedkopere methodes, maar er zijn goede AVR studio tuts, dus ik kies die weg.
Zow, maar gelijk in het diepe gesprongen en dan maar zien of je zwemmen kunt?
Dat is die verschrikkelijke combo; lunchen met witte wijn, conrad en ideal....
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: zo 14 apr 2013, 18:09
door Pjotr
Dat van Conrad snap ik niet zo, dat van die witte wijn weer wel
Psst:
http://forum.zelfbouwaudio.nl/viewtopic ... avr+dragon 
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: ma 15 apr 2013, 10:28
door SuperR
Je "heb hem zelf ook"
Ik ben bang dat als ik met mijn huidige avrdude/winavr/usbinyisp-gebeuren doorga, ik meer frustratie heb van het draaiende krijgen van een goede methode, dan met het leren van de code zelf. Iemand interesse in een USBtinyISP?

Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: ma 15 apr 2013, 10:48
door knuisje
Ik bouw meestal een prototype van de schakeling op gaatjesprint zoals
hier. Ook met de AF-DAC 2 heb ik zo'n protoype gemaakt. Ik gebruikte vroeger Bascom als programmeertaal. Dit is vrij laagdrempelig en daarmee heb ik de beginselen geleerd van de AVR microcontrollers.
Bij het ontwikkelen van de AF-DAC 2 ben ik overgestapt op C en AVR Studio omdat dit volledige vrijheid geeft over de microcontroller. Ik heb een leerboek voor C gekocht en verder veel tutorials en programmavoorbeelden doorgenomen. Op
http://www.mikrocontroller.net zijn veel handige routines te vinden.
Ik gebruik een eenvoudige USB-ASP programmer van 5 euro op Ebay.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: ma 15 apr 2013, 10:54
door SuperR
knuisje schreef:Bij het ontwikkelen van de AF-DAC 2 ben ik overgestapt op C en AVR Studio omdat dit volledige vrijheid geeft over de microcontroller. Ik heb een leerboek voor C gekocht en verder veel tutorials en programmavoorbeelden doorgenomen. Op
http://www.mikrocontroller.net zijn veel handige routines te vinden.
Welk boek heb je daarvoor gekocht? Een specifiek boek voor AVR Studio of C in het algemeen?
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: ma 15 apr 2013, 11:01
door knuisje
Ik heb het standaard C boek gekocht:
http://www.amazon.co.uk/dp/0131103628
Atmel Studio is niet zo ingewikkeld. Er zijn tutorials te googlen op het net en youtube.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: ma 15 apr 2013, 11:58
door Pjotr
SuperR schreef:Je "heb hem zelf ook"

............
Yup, alleen gebruik ik hem niet veel meer. Wat ik nog programmeer is in assembler code en dan heb je geen debuggers enzo nodig (ik temninste niet

). Aan de ISP2 programmer heb ik genoeg.
Net als Knuis implementeer ik een AVR direct in de toepassing en (her)programmeer hem dan via ISP.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 18:16
door SuperR
De "Dragon" heeft zich even flink uitgesloofd en een "blink" geüpload.
CODE: Selecteer alles
#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>
int main(void) {
DDRB |= ( 1 << 4 );
while (1) {
PORTB &= ~(1 << 4 );
_delay_ms(1000);
PORTB |= ( 1 << 4 );
_delay_ms(1000);
}
return 0;
}
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 18:30
door SuperR
Goed, nu de AVR Dragon lijkt te werken kan ik eens kijken naar een looplichtje. Aangezien ik het wiel niet opnieuw ga uitvinden ga ik dit schema eens tekenen;
http://nootropicdesign.com/projectlab/w ... ematic.png
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 21:27
door Ah!buis
Kijk 's hoe je de LED laat knipperen in machinetaal.Geen "include" dus zelf doen.Simpel intekken in Notepad of in P(rogammers)N(otepad) ,zit meen ik in AVR Studio.Noem het gewrocht blabla.asm en klik op assemble.Tenzij foutmelding(en) spuwt ie dan blabla.lst (zelfde met de machinecodes erbij) en blabla.hex voor de µC uit.
Heb een handleiding en instruktieset toegevoegd.Omdat niet elke µC alle instrukties kent (in datablad te zien) is de .DEVICE in het begin.
Anne
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 21:37
door Pjotr
Ha die Anne,
In assembler programmeren is weliswaar een kunst maar toch niet meer van deze tijd. Dat doe je alleen nog in geval van nood, als het echt zo snel mogelijk moet of echt compacte code moet zijn wegens Flash ruimtegebrek. Voor kleine dingetjes kan het prima. maar wordt het wat complexer is programmeren in C echt veel handiger, overzichtelijker en vooral sneller.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 21:43
door SuperR
Pjotr schreef:In assembler programmeren is weliswaar een kunst maar toch niet meer van deze tijd. Dat doe je alleen nog in geval van nood, als het echt zo snel mogelijk moet of echt compacte code moet zijn wegens Flash ruimtegebrek.
Phew, gelukkig maar, want de stap van arduino's "SPIwrite" "Shiftout" en "digitalwrite" naar C is al groot genoeg.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 22:40
door Ah!buis
Boeh

ik ben niet meer van deze tijd.Meer van het 8080 en Z80 tijdperk

.
Ik heb een hekel aan dat ge"include",prog.stukken van anderen en meestal veel groter (en soms trager) dan nodig,wegens het universeel inzetbare.En je ziet niet wat ie eigenlijk doet.
En dan nog in C,wee u al je er een sommetje inzet,voor je 't weet krijg je een heel pak "float" aan je been(prog.)
@SuperR,ik zie dat je 1MHz opgeeft als µC-frequentie.Bij de tiny13A is dat 1,2MHz met de fuses onveranderd.
Anne
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 23:04
door SuperR
Ah!buis schreef:Boeh

ik ben niet meer van deze tijd.Meer van het 8080 en Z80 tijdperk

.
Ik heb een hekel aan dat ge"include",prog.stukken van anderen en meestal veel groter (en soms trager) dan nodig,wegens het universeel inzetbare.
@SuperR,ik zie dat je 1MHz opgeeft als µC-frequentie.Bij de tiny13A is dat 1,2MHz met de fuses onveranderd.
Zodra ik een functie kan schrijven waarmee ik eenvoudiger dingen kan uitvoeren, ga ik die meteen gebruiken. Dat machinetaal is natuurlijk heel mooi en elementair, maar echt overzichtelijk wordt het er (voor mij) niet van.
Dat van die 1 of 1,2 MHz kan prima kloppen. Ik wilde gewoon dat hij iets deed om te kijken of de de programmer en de ISP header werkte. Net even het PCB'tje geetst van een proto-looplicht. Ik denk dat ik net een record jumpers/cm^2 heb verbroken; 14 op een printje van 3.5cm*7.5cm.
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 23:15
door Ah!buis
Schande
Anne
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: do 18 apr 2013, 23:42
door SuperR
Draadbruggen en/of niet-intuïtieve code vervangen door beter leesbare varianten?
Dit is vloeken in de AVR kerk?
CODE: Selecteer alles
int set_PORTB_bit(int position, int value)
{
// Sets or clears the bit in position 'position'
// either high or low (1 or 0) to match 'value'.
// Leaves all other bits in PORTB unchanged.
if (value == 0)
{
PORTB &= ~(1 << position); // Set bit # 'position' low
}
else
{
PORTB |= (1 << position); // Set bit # 'position' high
}
return 1;
}
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: vr 19 apr 2013, 10:50
door SuperR
Ik wilde even het shift-programma testen. Het schema heb ik van een paar berichten hierboven en heb ik naar mijn weten goed overgenomen. OutputEnable de gnd en MasterReset aan VCC. De code bouwen gaat goed, uploaden gaat ook goed en verifiëren bevestigt dat de code overeenkomt. Maar, "hij doet niks...". Bij het programmeren flikkeren de ledjes en als de code is geüpload gaan alle leds aan en that's it. Fout in code of hardware, roept u maar
CODE: Selecteer alles
/*
* ATtiny13 driving two 74HC595 shift registers
*
* Randomly turns on/off output pins of the shift
* register ICs.
* A random number of outputs are set high, then
* a random time delay occurs. Then the cycle
* repeats.
*
*/
#define F_CPU 1200000UL
#include <stdlib.h>
#include <avr/io.h>
#include <util/delay.h>
#define DATA PB0
#define CLOCK PB1
#define LATCH PB2
int main(void) {
int d;
char n;
char i;
// set DATA, LATCH and CLOCK pins to OUTPUT
DDRB |= (1 << DATA);
DDRB |= (1 << LATCH);
DDRB |= (1 << CLOCK);
PORTB = 0;
while(1) {
// choose number of LEDs to light up.
// n will be between 4 and 16
n = 4 + (random() % 13);
for(i=0;i<15;i++) {
// for each LED, probability of it being lit
// is n/15
if ((random() % 15) <= n) {
PORTB |= (1 << DATA); // set DATA pin high
} else {
PORTB &= ~(1 << DATA); // set DATA pin low
}
// toggle shift register clock pin
PORTB |= (1 << CLOCK);
_delay_ms(2);
PORTB &= ~(1 << CLOCK);
}
// once we've shifted out all 15 values, toggle
// the latch pin.
PORTB |= (1 << LATCH);
_delay_ms(2);
PORTB &= ~(1 << LATCH);
// delay random amount of time between
// 100ms and 500ms
d = 100 + (random() % 400);
for(i=0;i<d;i++) {
// _delay_ms function must be called with a
// constant value, not a variable!
_delay_ms(1);
}
}
return 0; // not reached
}
Re: Tiny project voor Attiny13; "My first Code"
Geplaatst: vr 19 apr 2013, 23:02
door Ah!buis
Voor zover mijn C-kennis reikt,ken de juiste tekens/formulering niet goed,zou dat wel werken.Behalve dan als die random niet doet wat ie moet.
Iets anders is de schakeling.Met een 74HC is 't in orde,maar er staat 74LS dan zijn er wat verschillen.Niet op logisch wel op elektrisch gebied.Pin 10 zit zo aan Vcc,daar houdt hij niet van,zou een weerstand (mag gezamelijk voor de twee)van 1k tussen moeten.
De uitgangen van een 74LS hebben weinig fut om naar Vcc te trekken,wel naar massa.Dus de LED's+weerstand naar Vcc ipv naar massa (LED wel omdraaien).
Anne