Problem med A/D i Tiny15

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Hedis
Inlägg: 2488
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Problem med A/D i Tiny15

Inlägg av Hedis »

Jag hade ett bygge som konstruerades med en Mega32:a då det var den jag hade hemma.
Allt fungerade kanon och jag fick hem Tiny15 µC för någon vecka sedan.
Lite register o portar fick ändras o så för att kunna få över koden, inga större problem.

Men varför går det inte att initiera den höga delen utav stacken?

Kod: Markera allt

	ldi	r16,ramend			;Init stackpointer
	out	spl,r16
;	ldi	r16,high(ramend) <----- Dessa måste skippas för att kompilatorn inte skall få frispel
;	out	sph,r16
Skippar jag den höga delen utav stacken så verkar det fungera ändå.

Jag får inte igång AD´n. Försöker mäta på adc2 men får inga värden ut.
Efterssom tiny15´n har så få utgångar så är det inte enkelt o debugga den heller. (brukar annars sätta lysdioder på en port och se vad ad´n läser)

Kod: Markera allt

	ldi	temp,0b10000010		;Internal 2,56v aref, adc2 (pin3)
	out	admux,temp

	ldi	temp,0b11000111		;Enable ADC, Start ADC conversion, Division factor 128
	out	adcsr,temp
Jag skrev ett enkelt program som skulle sätta en utgång hög om adc resultatet var $ff och släcka den om resultatet var $00. Men det fungerade inte alls. Den läser inte $ff (255) även om man byglar adc2 till vcc.

Någon som har en ide? på stacken eller på ad´n.
Är det något speciellt med ad´n i tiny15? står inget speciellt i manualen iaf.
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Tiny15 har inge ram, så iställe har den hårdvare stack så jag fattar inte riktigt hur den gick i genom med första delen av Stack initseringen, du är säker på att du har rätt include file?
Användarvisningsbild
Hedis
Inlägg: 2488
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Hmm.... så den behöver alltås inte intitieras, fint när man vet det :)
Joda det skall allt vara rätt include fil.

.include "tn15def.inc"
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Du bör sätta ADLAR Till 1 om du ska använda AD i "8bitar" mode och läsa av värdet från ADCH


jag kan inte komma på nå mer fel.....

:)
Användarvisningsbild
Hedis
Inlägg: 2488
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Jo jag funderade lite på ADLAR, jag har omvandlat det till 8bit på ett annat sätt tidigare:

Kod: Markera allt

input:
	ldi	temp,0b11000111		;set the register adcsr
	out	adcsr,temp
	in	temp,adcl		;read both adc register
	in	temp2,adch		
	lsr	temp			
	lsr	temp
	lsl	temp2
	lsl	temp2
	lsl	temp2
	lsl	temp2
	lsl	temp2
	lsl	temp2
	or	temp,temp2		; ori, e.g. the 2 lsb bits gone->8 bits left
	mov	avgas,temp	
	ret
Fick den i näven när jag började med µC´s och inte var lika insatt i det hela.
Hittade ADLAr funktionen tidigare idag o såg att den gör ungefär samma sak.
Skriv svar