Sida 4 av 5

Postat: 16 augusti 2008, 21:19:18
av gripner
tack thepirate, ska se om jag får tillfälle att kolla påt

Postat: 17 augusti 2008, 00:32:20
av sodjan
> for(i=1; i < 10000001; i++)

> addering tar tydlingen likt de allra flesta instruktioner 1 klockcykel.

ja, en *8-bitars* ADD kanske gör det.
Men din loop går ju till 1.000.000, så där räcker inte 8 bitar speciellt långt...
Inte ens 16-bitar, utan det går åt 3 bytes vilket ger (minst) 3 ADD per loop.

> dvs, hur många instruktioner behöver en for-loop?

Det går inte att ge ett generellt svar på det, det beror helt på start
och slut värdet.

> som lopar igenom 10000000 simpla adderingar,

Ja, 1.000.000 enkla/simpla 8-bitars ADD's går mycket snabbare.

Postat: 18 augusti 2008, 15:12:37
av gripner
skrev ett litet mail till olimex och hörde om klockfreqvens, snabbare än att testa ut det själv, fick ett svar, kanske lite oförskämt sådant men dock ett svar.

Hi Leif,

the schematic is on our web and there is clearly seen 8 Mhz crystal connected to the microcontroller, why do you suppose we'll put crystal on board and use internal oscillator?

best regards
Tsvetan / Olimex

----- Original Message -----
From: Leif Gripner
To: devrfq@olimex.com
Sent: Sunday, August 17, 2008 1:20 AM
Subject: AVR-USB-162

hello

i got one of the AVR-USB-162 dev boards, cant find any information on if it uses the internal or external ocilator. and does it use any modifiation of the ocilators freq?

/ Leif

Postat: 18 augusti 2008, 15:30:35
av sodjan
Men, oasvett om det sitter en kristall där eller inte så kan
man väl ändå välja att köra med kristall eller intosc i sin
egen kod !?

Sen så kan jag rent personligen tycka att om man kan skriva
ett mail till ett företag där man frågar om hjälp så använder
men normala skrivregler. Det ser t.ex för dj--vligt ut med "i"
istället för "I" i första meningen. *Det* är mer oförskämt
än Olimex svar. Att du är lika slarvig på forumet går väl
kanske att leva med, även om det ser lika illa ut. Det säger
bara att "min tid är viktigare än alla er andras tid".

Hur som helst, om man skriver ett lite mer officiellt mail
till ett föratag så är det min rekomendation att inte
bara slarva iväg något man har krafsat ner i all hast. Ta
det som ett tips, och så kanske även svaren blir bättre
i framtiden.

Postat: 18 augusti 2008, 15:38:49
av eqlazer
Vilken slags oscillator som används ställs in med med programmeraren, tex en ISP. Det man kan göra via sin egen kod är att avaktivera den prescalern som ställer ner interna RC från 8 till 1 MHz, om det nu är den som används.

gripner: Har du ingen programmerare så du kan läsa ut fuses?

Postat: 18 augusti 2008, 15:54:12
av sodjan
OK, med "i sin egen kod" menade jag igentligen "själv".
D.v.s att det inte är beroende av hur hårdvaran ser ut (att
man kan köra med intern osc även om det finns en
kristall monterad). Om sedan bestämmer det i koden
eller i programmeringsverktygen spelar kanske mindre roll...

Postat: 18 augusti 2008, 16:21:42
av björn
Man kan köra antingen på kristall eller den interna genom att ändra fusebitarna. Nu har jag inte läst igenom allt som skrivits men med en vanlig ISP så kan man läsa ut fusebitarna och få klarhet i vad den kör på.

Postat: 18 augusti 2008, 16:23:05
av gripner
har ingen programerare som kommer åt bootloader elle fuses settings. har inget i min kod som moddar/ändrar klockan från va nu default är

Postat: 18 augusti 2008, 17:49:00
av sodjan
> har ingen programerare som kommer åt bootloader elle fuses settings.

Då lär det inte hjälpa mycket att fråga här heller... :-)

Jag måste ha missat något, men jag hade inte förstått att
du körde en bootloader. I så fall så bör "fuses" inställningarna
hänga ihop med bootloadern, inte med din applikation. Bootloadern
är ju antagligen beroende på att det är satt på ett visst sätt.

> har inget i min kod som moddar/ändrar klockan från va nu default är

Ditt problem är att överyga alla andra om det. Ett enkelt påstående
brukar normalt inte göra det. Det brukar behövas "hard facts".

Postat: 18 augusti 2008, 18:40:38
av gripner
min kod är postad i denna tråd, så går lätt att se att den ej innehåller någon mod av klockan.


bootloaderns instälningar är gjorda av olimex och av deras svar så kör dom omodifierat på externa 8MHz ocilatorn.

ska se om jag kan lyckas få lite tid att testa lite till idag, men vet inte riktigt vad jag skall testa, summerat ser ju allt ut att vara rätt
ett 'U' loopat ut på usartens txd ger 2.5v, max232 rs232 sida ut ger ca 0v
koden är så vitt jag och andra ser rätt, databladet upger klart och tydligt baudrate registret skall sättas med 51, vilket jag gjort
ändå ger 9600baud i hyperterm eller annat rs232 proggy skräp medan 1200baud ger 100 funktionalitet

Postat: 18 augusti 2008, 18:58:48
av sodjan
> max232 rs232 sida ut ger ca 0v

(MAX232 och RS232...)

Det ska den aldrig göra.
Antingen ca *plus* 10V *eller* ca *minus* 10 V.
Aldrig 0 V...

Och vad exakt är "proggy skräp" och "100 funktionalitet" ?

Äh, skit samma. Det är ditt problem...

Postat: 18 augusti 2008, 19:25:55
av björn
gripner skrev:nu fattar jag ingenting.

I databladet står det i tabel 17-11 att 51 är 9600baud vid 8MHz

jag har satt 51, jag har 8MHz kristall

testar att köra med 1200baud i pc:n och det funkar!!! borde ju funka på 9600 o inget annat!
Detta säger ju att du kör på 1 MHz.

1000000/16(51+1)=1201,9 Klart som korvspad kan tyckas.

EDIT:Eller så räknar vi bakvägen -> BAUD*16*(UBRRn+1) == 1200*16*52=998400 Hz ~1 MHz

Postat: 18 augusti 2008, 19:42:31
av anrhm
Ur databladet:

6.3.1 Default Clock Source
The device is shipped with internal RC oscillator at 8.0 MHz and with the fuse CKDIV8 programmed,
resulting in 1.0 MHz system clock. The startup time is set to maximum and time-out
period enabled. (CKSEL = "0010", SUT = "10", CKDIV8 = "0"). The default setting ensures that
all users can make their desired clock source setting using any available programming interface.

Postat: 18 augusti 2008, 19:55:26
av gripner
loopar man output av et 'U' som beskrivet tidigare i denna tråd ger 1:or och 0:or ut i en sån följda att det mätt med en multimeter blir "mitt emellan" 1:a och 0:a
DVS på ttl 2.5volt, på max232 som i mitt fall ger +9volt eller -9volt blir det ca 0volt.

björn, aldrig sagt att jag kör på 1MHz, dock trott/spelulerat att kanske så är fallet iom att baudraten inte blir rätt. Där av försöken att hitta smidigt sätt att kolla det när man som jag saknar en riktig programerare.

anrhmn, atmel levererar så, men jag använder ett lab-kort från en leverantör som lagt till en extern ocilator vilken dom påstår sig använda, så dom har ändrat bootloader/fuse settings

Postat: 18 augusti 2008, 20:06:16
av björn
Nej, jag vet att *du* aldrig har sagt det. Men *jag* säger *att* du gör det (kör på 1 MHz) om du får ~1200 baud med 51 i UBRR. Jag har testat så många gånger för att säkerställa vilken frekvens controllern snurrar på.

ps. jag skulle tro att det är prescalern som är satt till Fclk/8, kolla i databladet hur den ställs till 1 (går att göra i mjukvaran, åtminstonde på vanliga AVR) Se CLKPR.