Sida 2 av 3
Postat: 17 januari 2008, 20:51:25
av petterp
Jag tänkte ifall någon här visste en lösning på problemet
Tillägg;
Är debuggningen nödvändig?
Upptäkte att jag kan skapa hex filen, och då kan jag programmera

Postat: 18 januari 2008, 01:01:05
av eqlazer
ISP:en har ingen möjlighet till debuging, endast flasha kretsar. För att kunna använda debugwire eller jtag krävs en dragon eller jtagice. Det du kan göra i nuläget med utvecklingsmiljön är att simulera, annars är det att ladda ner på kretsen och testa där som gäller.
Jag har själv aldrig använt WinAVR eller AVRstudio, så jag kan tyvärr inte svara på några mer ingående frågor om dessa. Själv kör jag linux, eclipse/gedit/vim/whatever, makefiles och avrdude.
Postat: 18 januari 2008, 01:02:25
av eqlazer
petter.pet skrev:
Tillägg;
Är debuggningen nödvändig?
Nej, vi skriver felfri kod direkt, mycket enklare så :)
Postat: 18 januari 2008, 06:21:27
av JJ
Är du med på vad som menas med debuggning i dethär fallet? Det är att man kan ladda koden och sedan stega igenom den samtididigt som man kan se var i koden man är och sätta brytpunkter och läsa av variabelvärden etc.
Alltså: nej det är inte nödvändigt.
Postat: 18 januari 2008, 16:11:48
av petterp
nä det visste jag inte
ok då löste de ju sig
ingen som har någon bra sida på hur man lär sig programmering i c eller vad de olika kommandon står för?
Postat: 18 januari 2008, 16:44:41
av nole
Dom har ju nämnt
http://www.avrfreaks.net/ tidigare i tråden, det och databladet borde räcka för att "sätta fart" på dig

kolla även våran Wiki den innehåller en del om AVR ASM/C.
Postat: 20 januari 2008, 21:01:11
av petterp
Nu har jag fått ett nytt problem, ungefär direkt efter det först

Jag har inte förstått mig på detta med att välja vilken pinne som är utgång eller ingång, eller hur man sätter en pinne hög eller låg. Om man vill att den ska vänta i X sekunder.
Ingen som vet vart man kan få tag på svenska guider?
Jag skulle verkligen behöva hjälp med grunderna, hittar bara guider som är skrivna på Engelska som inte förklarar tillräckligt ingående.
hoppas någon kan hjälpa mig
tack igen
/petter
Postat: 20 januari 2008, 23:07:23
av BEEP
Assembler - ATmega88
Kod: Markera allt
//----------------------------------------------------------------------
.INCLUDE "m88def.inc"
//----------------------------------------------------------------------
.def temp = r16
//--- Interrupt Vector -------------------------------------------------
.org 0x000
rjmp Reset ; Reset Handler
//--- Reset ------------------------------------------------------------
.org 0x01A
Reset:
; Set up the stackpointer
ldi temp, LOW(RAMEND) ; Set stackpointer to ram end
out SPL, temp
ldi temp, HIGH(RAMEND)
out SPH, temp
; set global interrupt enable
sei
//--- Initialize --------------------------------------------------------
Init_PORTB:
; Sätter pinne 2 på PORTB till utgång
ldi temp, 0b00000100
out DDRB, temp
//--- Loop --------------------------------------------------------------
Loop:
; Sätter pinne 2 på PORTB hög (plus)
sbi PORTB, 2 ; Om den ska vara låg (minus) byt ut sbi till cbi
rjmp Loop
Postat: 21 januari 2008, 01:53:44
av eqlazer
Är det mega88 du använder? Kolla isf 13.2.1 i databladet.
Finns många sätt hur man kan skriva detta, men de flesta varianter får i stort sett samma resultat.
Exempel: sätta PB2 som ingång och PC6 som utgång
DDRB &= ~(1<<PB2); //Nollställer tredje biten i registret
DDRC |= (1<<PC6); // Ettställer sjunde biten i registret
PORTC &= ~(1<<PC6); //Skriva 0 till PC6
PORTC |= (1<<PC6); //Skriva 1 till PC6
temp = (1<<PB2)&PINB; //Läser PB2 och sparar dess värde i temp
För att kunna "vänta i X sekunder" så behöver du blanda in timers. Vill du skriva egna rutiner för att lära dig hur det fungerar eller vill du använda färdiga bibliotek?
Postat: 21 januari 2008, 08:15:58
av Zyxel615
Postat: 21 januari 2008, 17:02:14
av petterp
jag använder en atmega32 och programmerar i C (har installerat WinAvr)
Postat: 21 januari 2008, 19:13:35
av bos
petterp skrev:Ingen som vet vart man kan få tag på svenska guider?
Tyvärr är det nog bara att bita i det sura äpplet och försöka plöja igenom exempel på engelska. Börjar du med svenska guider så kanske risken att du vänjer dig vid att hitta information på svenska, och eftersom alla datablad är på engelska så hamnar du nog ändå i en återvändsgränd förr eller senare.
Misstolka mig dock inte, jag vet att det finns behov för svenska guider och liknande, men antagligen är det ingen som orkar ägna större energi på det just för att de texter som är på engelska innebär att en större målgrupp som läser dem än om de vore svenska diton.
Postat: 21 januari 2008, 20:05:01
av petterp
Kunde nästan tänka mig de
Allt jag behöver nu för tillfället är bara (bara å bara) beskrivning över:
1: Hur jag väljer vilken krets jag ska använda
2: Hur jag sätter pinar som In- eller Utgång
3: Hur jag sätter utgång som hög eller låg.
4: Hur jag döper om in pinne från Ex. "pina.1" till knapp"
5: Skulle uppskatta ifall någon skulle kunna skriva en enkel beskrivning över en program som tänder en diod när en knapp är "0"
Jag skriver i C
Postat: 21 januari 2008, 20:37:21
av thepirateboy
Databladet sid 53, precis som eqlazer visade dig.
Kod: Markera allt
C Code Example(1)
unsigned char i;
...
/* Define pull-ups and set outputs high */
/* Define directions for port pins */
PORTB = (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0);
DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
/* Insert nop for synchronization*/
_NOP();
/* Read port pins */
i = PINB;
Fråga 4
Fråga 5
Postat: 21 januari 2008, 20:57:17
av CyberLeffe