Lite frågor ang. AVR
jag byggde efter detta chemat 
sen så har jag en In-Circuit Program Downloader http://www.futurlec.com/ATMegaControlBoard.shtml
så ser den ut. har bytt diod nu och den har inte brunnit änsålänga iaf.. visseligen har jag inte provat att ha avr:en på sammtidigt men..(endast sockeln)
ska kolla igenom allt en sista gång snart och testa med avr:en..
men vet inte riktigt jur jag ska testa om den funkar..
någon som kan ge ett kodexempel i c och besriva vad som händer?
sen så har jag en In-Circuit Program Downloader http://www.futurlec.com/ATMegaControlBoard.shtml
så ser den ut. har bytt diod nu och den har inte brunnit änsålänga iaf.. visseligen har jag inte provat att ha avr:en på sammtidigt men..(endast sockeln)
ska kolla igenom allt en sista gång snart och testa med avr:en..
men vet inte riktigt jur jag ska testa om den funkar..
någon som kan ge ett kodexempel i c och besriva vad som händer?
Kod: Markera allt
#include <avr/io.h>
#include <avr/delay.h>
#include <inttypes.h>
// Inkluderar lite header-filer som behövs
// io.h innehåller bl a värdet för PORTB
// delay.h innehåller funktionen _delay_loop_2()
// inttypes.h innehåller olika typer. T ex:
// uint8_t - unsigned char 8-bit (0 - 255)
// int8_t - signed char 8-bit (-128 - 127)
// uint16_t - unsigned int 16-bit (0 - 65535)
int main()
{
uint16_t i; // Deklarerar en variabel för loopen nedan. 16-bitars eftersom
// 8 bitar blir för litet för värdet 500 i for-loopen.
DDRB = 0xFF; // Sätter alla bitar i DDRB till 1 vilket gör så att alla
// pinnar på PORTB blir utgångar
while (1) // Startar en evighetsloop. Programmet kommer loopa genom den
// den här loopen så länge AVR:en är igång
{
PORTB ^= 0xFF; // Växlar värdet på PORTB. Dvs ett värde på 0xFF
// på hela PORTB ger 0x00 på PORTB. Och 0x00 ger 0xFF
for (i=0;i<500;i++)
{
_delay_loop_2(1000); // 1000 motsvarar 1000*4 klockcykler. Vid
// 4 MHz motsvarar det 1000 µs. Loopar vi det
// 500 gånger så motsvarar det 1/2 sekund.
}
} // Går tillbaka till while (1) igen...
return 1; // Kommer aldrig att köras eftersom programexecveringen aldrig
// lämnar while-loopen.
}
Säkert en hel del du inte förstår just nu, men se om du lyckas kompilera det och skicka över till AVR:en först.
edit: 1000µs inte 4000µs som jag skrev förut i kommentaren
edit2: ändring av int8_t
Senast redigerad av cykze 27 augusti 2004, 22:05:10, redigerad totalt 2 gånger.
ett jätte tack cykze..
en sak bara..
det står inte på schemat men..
jag har satt en resonator istället på pin 11,12 och 13..
men jag har ingen trimpotentiometer så jag undrar hur jag ska göra? ska ja kloppla 5v och jord till 30 och 31 eller? jag menar att jag bara hoppar över potentiometern som om de vore vbanlig kopplingstråd bara? eller ska ja skita i de helt?
en sak bara..
det står inte på schemat men..
jag har satt en resonator istället på pin 11,12 och 13..
men jag har ingen trimpotentiometer så jag undrar hur jag ska göra? ska ja kloppla 5v och jord till 30 och 31 eller? jag menar att jag bara hoppar över potentiometern som om de vore vbanlig kopplingstråd bara? eller ska ja skita i de helt?
Vilken avr kör du med? den kanske har intärn klockning?
Det skall allt fungera fint o köra med resonator. Då skall den också kopplas som du skrev.
Döremot vet jag inte riktigt om man behöver ändra klocksettings för processorn. Men det märker du om det fungerar. Om den inte klockas riktigt så kommer du heller inte åt den med programmeraren.
Aref behöver du endast om du skall köra med analog mätning. (A/D-omvandlare)
Så kör du +5v till 30 och 32. Jorda 31.
Det skall allt fungera fint o köra med resonator. Då skall den också kopplas som du skrev.
Döremot vet jag inte riktigt om man behöver ändra klocksettings för processorn. Men det märker du om det fungerar. Om den inte klockas riktigt så kommer du heller inte åt den med programmeraren.
Aref behöver du endast om du skall köra med analog mätning. (A/D-omvandlare)
Så kör du +5v till 30 och 32. Jorda 31.
Bryt försiktigt med en skruvmejsel i ändarna. Lite i 1:a änden, över till nästa i håll på så tills den är loss.
Mega32:an har inbyggt klockning på upp till 8Mhz vilket räcker långt till en början.
För att programmera den så skall du inte behöva ta loss den. Koppla bara in kablarna till ISP programmeringen till breadborden. I värsta fall om det glappar så kan du ju löda dom försiktigt på benet (precis ivanför "ytan" på kopplingsdäcket.
Då slipper du ju hålla på o flytta den.
MISO
MOSI
SCK
RESET
Är dom grejer du behöver ha koplat till programmeraren.
Senså ett tips!
JTAG är aktiverat som standard på processorn vilket gör att en pinne på portC inte fungerar förrens man disablar Jtag.
Jag satt säkert en dag o letade fel innan jag kom på detta
(allr fungerade fint med lcd o den gamla 8515 processorn men inte med mega32:an
)
Mega32:an har inbyggt klockning på upp till 8Mhz vilket räcker långt till en början.
För att programmera den så skall du inte behöva ta loss den. Koppla bara in kablarna till ISP programmeringen till breadborden. I värsta fall om det glappar så kan du ju löda dom försiktigt på benet (precis ivanför "ytan" på kopplingsdäcket.
Då slipper du ju hålla på o flytta den.
MISO
MOSI
SCK
RESET
Är dom grejer du behöver ha koplat till programmeraren.
Senså ett tips!
JTAG är aktiverat som standard på processorn vilket gör att en pinne på portC inte fungerar förrens man disablar Jtag.
Jag satt säkert en dag o letade fel innan jag kom på detta

