-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.icpnet.pl!.POSTED!not-for-mai
l
From: "Grzegorz Niemirowski" <g...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: avr i C - kto nie rozumie: kompilator, procesor czy ja?
Date: Sun, 6 Jan 2013 15:29:38 +0100
Organization: ICP News Server
Lines: 75
Message-ID: <kcc1od$5fp$1@news.icpnet.pl>
References: <kcc0uj$9sa$1@node1.news.atman.pl>
NNTP-Posting-Host: 031011139062.warszawa.vectranet.pl
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=response
Content-Transfer-Encoding: 8bit
X-Trace: news.icpnet.pl 1357482573 5625 31.11.139.62 (6 Jan 2013 14:29:33 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Sun, 6 Jan 2013 14:29:33 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: OE PowerTool 4.5
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
X-WWW: http://www.grzegorz.net/
Xref: news-archive.icm.edu.pl pl.misc.elektronika:640406
[ ukryj nagłówki ]Jakub Rakus <s...@o...pl> napisał(a):
> Witajcie,
> Ostatnie moje problemy (tu na grupie poruszane) z obsługą uarta na
> atmelkach stały się moim gwoździem do trumny bascoma i w końcu się
> zawziąłem na C, choć zabierałem się do tego już od roku jak pies do jeża.
A problem był po stronie Bascoma czy niedopracowanego algorytmu?
> No to na początek, standardowo pomrugamy diodą. Ot taki programik:
> #define F_CPU 16000000UL
> #include <avr/io.h>
> #include <util/delay.h>
> int main(void)
> {
> DDRD = 0xFF;
> PORTD = 0x00;
> while(1)
> {
> PORTD ^= _BV(0);
> _delay_ms(500);
> }
> }
> I zonk, na porcie ciągle stan wysoki. Podejrzałem plik .lss i niby
> wszystko ok, jak patrzę na instrukcję asemblera to powinno działać:
> 00000038 <main>:
> 38: 8f ef ldi r24, 0xFF
> 3a: 81 bb out 0x11, r24
> 3c: 12 ba out 0x12, r1
> 3e: 91 e0 ldi r25, 0x01
> 40: 82 b3 in r24, 0x12
> 42: 89 27 eor r24, r25
> 44: 82 bb out 0x12, r24
> 46: ef ef ldi r30, 0xFF
> 48: ff e3 ldi r31, 0x3F
> 4a: 31 97 sbiw r30, 0x01
> 4c: f1 f7 brne .-4
> 4e: 00 c0 rjmp .+0
> 50: f7 cf rjmp .-18
> Ale niestety nie działa, stan na porcie zmienia się bez opóźnienia. A
> teraz ciekawostka, zamiast wykorzystywać funkcję _delay_ms wstawiłem
> swoją:
> void delay(void)
> {
> uint16_t i;
> for (i=0;i<15000;i++);
> }
> Patrzę na plik .lss, a tu:
> 00000038 <delay>:
> 38: 88 e9 ldi r24, 0x98
> 3a: 9a e3 ldi r25, 0x3A
> 3c: 01 97 sbiw r24, 0x01
> 3e: f1 f7 brne .-4
> 40: 08 95 ret
> 00000042 <main>:
> 42: 8f ef ldi r24, 0xFF
> 44: 81 bb out 0x11, r24
> 46: 12 ba out 0x12, r1
> 48: 91 e0 ldi r25, 0x01
> 4a: 82 b3 in r24, 0x12
> 4c: 89 27 eor r24, r25
> 4e: 82 bb out 0x12, r24
> 50: fc cf rjmp .-8
> Wychodzi na to, że po przełączeniu bitu PD0 w ogóle nie wywołuje funkcji
> delay() - no i port tak właśnie się zachowuje, w kółko się przełącza.
> Obstawiam opcję, że ja czegoś nie rozumie, ale może ktoś mnie oświeci.
Ustawiłeś optymalizacje zgodnie z dokumentacją?
Którego kompilatora używasz?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 1 hours, 26 minutes and 32 seconds
Następne wpisy z tego wątku
- 06.01.13 15:45 Jakub Rakus
- 06.01.13 15:57 Jakub Rakus
- 06.01.13 16:01 Marek
- 06.01.13 16:09 Jakub Rakus
- 06.01.13 16:58 Grzegorz Niemirowski
- 06.01.13 17:28 Jakub Rakus
- 06.01.13 17:46 Grzegorz Niemirowski
- 06.01.13 18:13 Jakub Rakus
- 06.01.13 18:56 Grzegorz Niemirowski
- 06.01.13 20:48 Jakub Rakus
- 06.01.13 22:15 Atlantis
- 08.01.13 11:15 Adam Wysocki
- 08.01.13 17:28 Grzegorz Niemirowski
- 09.01.13 09:51 Michał Lankosz
- 09.01.13 13:36 Adam Wysocki
Najnowsze wątki z tej grupy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
Najnowsze wątki
- 2025-05-12 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-12 presja na aplikacje i blik
- 2025-05-12 czy znacie bardziej popierdolone sieci niż polskie?
- 2025-05-12 czy znacie bardziej popierdolone sieci niż polskie?
- 2025-05-11 Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- 2025-05-11 Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- 2025-05-11 obca rejestracja budzi agresję
- 2025-05-11 Po nie udanej próbie egzekucji: Nigeryjczyk, który chciał zabić Polaka, nie odpowie za atak
- 2025-05-10 Szczecin => Key Account Manager IT <=
- 2025-05-10 Rudno => Administrator sieci IT <=
- 2025-05-10 Wrocław => Controlling systems Consultant <=
- 2025-05-10 Rudno => IT network administrator <=
- 2025-05-10 Warszawa => Customer Service with Spanish + translation <=
- 2025-05-10 Warszawa => Senior Account Manager <=
- 2025-05-10 Trójmiasto => Head of Social Media <=