funkar fortfarande inte..
Lite frågor ang. AVR
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?
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.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?
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...
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
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?
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å.
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.
}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å.
