-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
OSTED!not-for-mail
From: badworm <n...@p...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: zamulający program na AVR
Date: Thu, 7 Apr 2016 17:37:01 +0200
Organization: ATMAN - ATM S.A.
Lines: 62
Message-ID: <g...@b...pl>
References: <p...@b...pl>
<57067701$0$22840$65785112@news.neostrada.pl>
NNTP-Posting-Host: ip-5-172-247-213.free.aero2.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1460043487 3917 5.172.247.213 (7 Apr 2016 15:38:07 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Thu, 7 Apr 2016 15:38:07 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1pl Hamster/2.0.0.1
Xref: news-archive.icm.edu.pl pl.misc.elektronika:698012
[ ukryj nagłówki ]Dnia Thu, 7 Apr 2016 17:04:31 +0200, szod napisał(a):
> To sprawdź ustawienia bitów konfiguracyjnych uC - na jakim oscylatorze
> pracuje.
Kompilator do fusebitów raczej dostępu nie ma. Przed chwilą porównałem
prędkość zegara I2C dla wsadów z obu kompilatorów. Różnica jest
kolosalna - dla nowego GCC to zaledwie 5kHz, dla starego ponad 80kHz.
Kod generujący opóźnienia dla tej magistrali wygląda tak:
#include <avr\io.h>
#include <inttypes.h>
#include "harddef.h"
#include "makra.h"
#include "i2c.h"
// Wyliczenie czasu opóźnienia połówkowego i ćwiartkowego (cykle)
#define I2C_nhalf (F_CPU/I2C_SPEED/2)
// Funkcja dłuższych opóźnień
#if I2C_nhalf < 3
// Nic
#elif I2C_nhalf < 8
static void i2c_xdelay(void)
{
NOP();
}
#else
#define I2C_delayloops (1+(I2C_nhalf-8)/3)
#if I2C_delayloops > 255
#error Przyspiesz - bo sie nie wyrabiam ;)
#endif
static void i2c_xdelay(void)
{
asm volatile( \
"delayus8_loop%=: \n\t"\
"dec %[ticks] \n\t"\
"brne delayus8_loop%= \n\t"\
: :[ticks]"r"(I2C_delayloops) );
}
#endif //I2C_nhalf >= 3
// Opóźnienia dla I2C
static inline void i2c_hdelay(void)
{
#if I2C_nhalf < 1
return; // To jest funkcja inline, jeśli składa się tylko z "return"
jest usuwana podczas optymalizacji
#elif I2C_nhalf < 2
NOP();
#elif I2C_nhalf < 3
asm volatile(
"rjmp exit%=\n\t"
"exit%=:\n\t"::);
#else
i2c_xdelay();
#endif
}
--
Pozdrawiam Bad Worm badworm[maupa]post{kropek}pl
GG#2400455 ICQ#320399066
Następne wpisy z tego wątku
- 07.04.16 18:12 Grzegorz Kurczyk
- 07.04.16 19:01 badworm
- 07.04.16 20:02 AlexY
- 08.04.16 08:58 wchpikus
- 08.04.16 12:51 AlexY
- 08.04.16 15:51 Grzegorz Niemirowski
- 08.04.16 16:53 Marek
- 08.04.16 18:07 platformowe głupki
- 08.04.16 18:12 Grzegorz Niemirowski
- 08.04.16 18:19 platformowe głupki
- 08.04.16 18:31 Grzegorz Niemirowski
- 08.04.16 18:35 platformowe głupki
- 08.04.16 18:37 platformowe głupki
- 08.04.16 21:28 badworm
- 09.04.16 00:26 Grzegorz Niemirowski
Najnowsze wątki z tej grupy
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
Najnowsze wątki
- 2025-02-14 Warszawa => Kierownik ds. kluczowych Klientów <=
- 2025-02-14 Częstochowa => Product Manager - Systemy infrastruktury teleinformaty
- 2025-02-14 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-02-14 Warszawa => Data Engineer (Tech Leader) <=
- 2025-02-14 Czy ma sens grupa news:pl.soc.polityka-prawna ? :-)
- 2025-02-14 e-paper
- 2025-02-14 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-14 Warszawa => System Architect (Java background) <=
- 2025-02-14 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-14 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-14 Re: Dlaczego nie było (pełzającego) zamachu stanu? Bo minister Bodnar już "zawiesił" prokuratora Ostrowskiego
- 2025-02-14 e-paper
- 2025-02-14 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-14 Warszawa => International Freight Forwarder <=
- 2025-02-14 Olsztyn => Sales Specialist <=