Kimlorentz Skrevet 10. september 2010 Del Skrevet 10. september 2010 Jeg har en ATMEGA8515L som jeg har programmert til å fungere i en test boks jeg lager. programmet er laget og testet på STK500 kortet men med en gang jeg legger IC`en på kretskortet fungerer den ikke, jeg tror det er på grunn av mangel av klokke pulser. Hvordan legger jeg inn kommando at den skal bruke den interne klokke frekvensen til å styre programmet med, trenger ikke så stor fart på kretsen til mitt arbeid. Her er kopi av komplette koden. Dette systemet funker som følger PortA er inngangen, inngangen til ICen er alltid høy når den blir lav reagerer ICen PortB er utgangen, utgangen til ICen er alltid høy, når noen trykker en bryter på PortA så blir utganger på PortB lav etter hvilken knapp du trykker .include "m8515def.inc" ; denne inkluderer Atmega8515L .def temp =r16 ; no heter r16 temp .def value0 =r17 ; no heter r17 value0 .def value1 =r18 ; osv .def value2 =r19 ; osv .def value3 =r20 ; osv .def value4 =r21 ; osv .def value5 =r22 ; osv .def value6 =r23 ; osv .def value7 =r24 ; osv .def value8 =r25 ; osv .cseg ; alt blir no lagret i .cseg i memory boot: ldi temp,0x00 ; setter r16 til 0 out DDRA,temp ; overfører fra temp registeret til DDRA ldi temp,0xff ; setter r16 til 255 out PORTB,temp ; setter PortB til 255 out DDRB,temp ; setter PortB til 255 out PORTA,temp ; setter PortA til 255 ldi value0,0b11111111 ; Ikke brukt ldi value1,0b11111110 ; Setter bryter i OFF posisjon ldi value2,0b11111101 ; Setter bryter i No Load posisjon ldi value3,0b11111011 ; Setter bryter i 200VA posisjon ldi value4,0b11110111 ; Setter bryter i 400VA posisjon ldi value5,0b11101111 ; Setter bryter i 600VA posisjon ldi value6,0b11011111 ; Setter bryter i 400VA LAG posisjon ldi value7,0b10111111 ; Setter bryter i 400VA LEAD posisjon ldi value8,0b01111111 ; Setter bryter i SHORT posisjon main: sbis PINA,0x00 ; OFF out PORTB,value1 ; sbis PINA,0x01 ; No load out PORTB,value2 ; sbis PINA,0x02 ; 200VA out PORTB,value3 ; sbis PINA,0x03 ; 400VA out PORTB,value4 ; sbis PINA,0x04 ; 600VA out PORTB,value5 ; sbis PINA,0x05 ; 400VA LAG out PORTB,value6 ; sbis PINA,0x06 ; 400VA LEAD out PORTB,value7 ; sbis PINA,0x07 ; SHORT out PORTB,value8 ; rjmp main ; den hopper tilbake til main: igjen Lenke til kommentar
nomore Skrevet 10. september 2010 Del Skrevet 10. september 2010 Nå vet eg ikke om Atmega8515 har en intern krystall eller ikke, men på Atmega328 som eg kjenner best til, må dette aktiveres via noen fuses som settes opp via AVRstudio. Lenke til kommentar
Giddion Skrevet 11. september 2010 Del Skrevet 11. september 2010 Kjenner bare til de ulike variantene av Atmega128 , men kikka i manualen til Atmega8515 [Atmega8515 manual [s35]] Atmega8515 skal bruke intern rc som default med mindre du har fiklet med fust bita som nomore nevner. Lenke til kommentar
Kimlorentz Skrevet 16. september 2010 Forfatter Del Skrevet 16. september 2010 Fant ut av Fuses og frekvens var feil innstilt så rettet på det og alt er ok Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå