Sida 5 av 11
Postat: 31 augusti 2004, 19:50:18
av Virr3
provat de..
funkar fortfarande inte..

Postat: 31 augusti 2004, 19:57:00
av Jonaz
Vad är det för programerare du har? gärna schema/länk
Postat: 31 augusti 2004, 20:27:15
av simon78
ponyprog eller avrdude?
Postat: 31 augusti 2004, 21:03:46
av Virr3
det är en ATMega32.. shgemat står lite tidigare i tråden sida 3 om jg inte minns fel..
använder programmersnotepad för att kompilera och mega32isp för att bränna in..
Postat: 1 september 2004, 12:11:59
av cykze
Har du konfigurerat mega32isp på något sätt för att få det att fungera med just din programmerare? Tror nämligen inte att mega32isp har stöd för din programmare (Futurlecs eller hur?).
Om jag vore du skulle jag ha kört med avrdude, istället för mega32isp. Version 4.4.0 har iaf stöd för Futurlec tror jag. Dock verkar det inte finnas någon Windows-port av den versionen. Visst var det väl Windows du körde? Men du kan annars installera version 4.3.0 (finns för Windows) och göra ett litet tillägg i en fil för att få den att stödja Futurlec.
Jag är inte säker att det kommer fungera med Futurlecs programmerare. Annars borde det gå att helt enkelt följa vilken kabel som går vart och sedan konfigurera avrdude efter det.
Vad är det för ic-krets som sitter på programmeraren?
Vet du vilket stift som är vilket i kontakten på Futurlecs programmerare?
Kan du visa ett schema på hur du har kopplat?
Postat: 1 september 2004, 15:54:59
av Virr3
schemat finns tidigare i tråden..
Postat: 1 september 2004, 16:32:59
av cykze
Oj, det hade jag ju faktiskt sett.
Men mina andra frågor kvarstår...
Postat: 1 september 2004, 16:50:31
av Virr3
okej.. hadde lite brådis förut så ja hann inte svara
japp den är köpt på futurlec..
men kan de vara olika ATMega 32:or beroende på vart man köper dom? eller snackar du om programeraren
vad det är för ic som sitter på programeraren har jag inte den blekaste om..
Postat: 1 september 2004, 17:23:55
av cykze
Jag har inte pratat om någon ATMega32. Eller vad menar du?
Har du provat att installera avrdude 4.3.0? avrdude kanske rent av följer med WinAVR-paketet.
Står det ingenting på ic:n på programmeraren?
Postat: 1 september 2004, 17:47:54
av Virr3
oj.. hadde lite förbrottom nbär jag läste
sak samma..
på ickretsen står det 25A2XCM och under SN7407N.
Det står i ganska liten text och otydlig färg men det är vad jag kan tyda det till.
nopp inte provat avrdude..
Postat: 4 september 2004, 14:01:11
av frejo
cykze skrev:Har du konfigurerat mega32isp på något sätt för att få det att fungera med just din programmerare? Tror nämligen inte att mega32isp har stöd för din programmare (Futurlecs eller hur?).
Om jag vore du skulle jag ha kört med avrdude, istället för mega32isp. Version 4.4.0 har iaf stöd för Futurlec tror jag. Dock verkar det inte finnas någon Windows-port av den versionen. Visst var det väl Windows du körde? Men du kan annars installera version 4.3.0 (finns för Windows) och göra ett litet tillägg i en fil för att få den att stödja Futurlec.
Jag är inte säker att det kommer fungera med Futurlecs programmerare. Annars borde det gå att helt enkelt följa vilken kabel som går vart och sedan konfigurera avrdude efter det.
Vad är det för ic-krets som sitter på programmeraren?
Vet du vilket stift som är vilket i kontakten på Futurlecs programmerare?
Kan du visa ett schema på hur du har kopplat?
Programmeraren från futurlec kommer från
www.ere.co.th och dom tillhandahåller mega32isp till den.
Jag kör med den programmeraren + mega32isp funkar finfint.
Kopplade enligt schemat på utvecklingskortet för atmegan från
www.ere.co.th och var igång på några timmar. Hur smidigt som helst. F.ö samma kopplingschema som jag skickat till Virr3, så det ska fungera...
Postat: 4 september 2004, 17:00:50
av Virr3
ska kolla när jag har tid och ork om det funkar till en annan dator.. tror nämligen att det är min paralellport som spökar..
Postat: 8 september 2004, 19:23:16
av Virr3
nu funkar allting:D men hur gör jag så att bara en pinne är hög?
Postat: 8 september 2004, 20:12:28
av MicaelKarlsson
I C borde det väl bli: PORTA=0x01
i ASM borde du kunna skriva på samma sätt eller PORTA=0b00000001
Postat: 8 september 2004, 20:17:04
av cykze
Grattis! Trodde jag väl aldrig att det skulle göra.
Hur gjorde du för att få det att fungera? Kan vara kul att veta, speciellt eftersom Futurlec-grejjen är rätt billigt.
Provade du att köra mitt exempel?
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 = _BV(PB0); // Sätter bit nummer PD0 i DDRB till 1 vilket gör så att den blir utgång
while (1) // Startar en evighetsloop. Programmet kommer loopa genom den
// den här loopen så länge AVR:en är igång
{
PORTB ^= _BV(PB0); // Växlar värdet på PB0. Dvs ett värde på 1
// på PB0 ger 0 på PB0. Och 0 ger 1.
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.
}
Har gjort ändringar på raderna med DDRB och PORTB! Det är nu alltså bara porten PB0 som kommer blinka. Alla andra pinnar kommer vara högohm:iga ingångar.
Kanske ska förklara: DDRB = _BV(PB0);
PB0 är en konstant som är det samma som 0. PB1 är 1, PB2 är 2 osv.
_BV är ett makro som är definierat så här:
_BV(x)=(1<<x) (fungerar som en vanlig matematisk funktion)
<<-operatorn betyder "skifta vänster". Vilket i "1<<x" betyder: skifta 1, x steg åt vänster.
Skiftar man 1, 0 steg åt vänster kommer DDRB tilldelas 00000001 (bin). Skulle man köra _BV(PB1) istället kommer 1 skiftas 1 steg åt vänster vilket betyder 00000010 (bin).
I vårat fall kommer alltså DDRB innehålla:
00000001 (bin)
Bit nummer 0 kommer vara satt i DDRB. Som du kan se i databladet innebär det att PB0 sätts som utgång.
Är du med så långt? Och förstår du inte är det mina krångliga förklaringar som det beror på.
