www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Timer in GPIO - STM32F401RE
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
jure94
Član
Član



Pridružen-a: Sre 05 Maj 2010 17:11
Prispevkov: 433
Aktiv.: 2.56
Kraj: Jesenice / Lj

PrispevekObjavljeno: Pet Nov 07, 2014 1:12 am    Naslov sporočila:  Timer in GPIO - STM32F401RE Odgovori s citatom

Pred kratkim sem se zašel učiti programiranja na ARM in sem izbral STM32F401RE Nucleo board. Trenutno mi pa dela probleme utripanje LED s timerjem.
LED je povezana na PA.5 uporabljam pa TIM2 CH1 (lahko se ga poveže na PA.5, vsaj tako pravi datasheet). Želel bi utripati LED samo z "hardware-om", kot naprimer tukaj.
Sam timer dela, ne znam pa ga povezati na GPIO, da bi upravljal z LED. Če samo gledam UIF bit v SR in glede na to spreminjam izhod, LED utripa, če pa želim delati to samo z TIM2 pa ne več.
Še moja koda (v test.h so samo deklaracije funkcij):
Koda:
#include "stm32f4xx.h"
#include "test.h"

//Main program
int main(void){
   
    //initialize:
    clk_init();
    set_LED();
    //set_BTT();
    set_TIM2();
    /*
    //Toggle LED
    while(1){
        if (TIM2->SR & TIM_SR_UIF){
       
            TIM2->SR &= ~TIM_SR_UIF;
            GPIOA->ODR ^= (1 << 5);
        }
    }*/
    while(1){}

}


//Functions
int32_t clk_init (void) {   
    //Enable GPIO clock for all ports A and C
    RCC->AHB1ENR |= 0x5;
    //TIM2 clock enable
    RCC->APB1ENR |= 0x1;
   
    return 0;
}

int32_t set_LED (void) {
    //Set PA5 as output
    GPIOA->MODER |= (2 << 10);
    //Push-pull output
    GPIOA->OTYPER &= ~(1 << 5);
    //Medium speed
    GPIOA->OSPEEDR |= 0x40;
    //No pull-up, pull-down
    GPIOA->PUPDR &= ~(3 << 10);
    //Connect to TIM2
    GPIOA->AFR[0] |= (1 << 4);
   
    return 0;
}
/*
int32_t set_BTT (void) {
    //Set PC13 as input
    GPIOC->MODER &= ~(3 << 26);
    //Set medium speed
    GPIOC->OSPEEDR |= 0x4000000;
    //No pull-up, pull-down
    GPIOC->PUPDR &= ~(3 << 26);
   
    return 0;
}
*/
int32_t set_TIM2 (void) {
    //Set prescaler
    TIM2->PSC &= 0x0;
    TIM2->PSC = 0x5DBF;
    //Set reload value
    TIM2->ARR = 0x3E8;
   
    TIM2->CCR1 = 0x3E8;
    TIM2->CCMR1 |= (3 << 4);
    TIM2->CCER |= 0x1;
    //Enable counter
    TIM2->CR1 |= 0x1;
   
    return 0;
}
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Pet Nov 07, 2014 1:50 am    Naslov sporočila:   Odgovori s citatom

Predlagam, da uporabiš std driverje ali hal cube driverje od st. Bo precej lažje tako tebi kot nam, ko gledamo v te registre.

Lahko narediš pwm z timerjem na recimo 1s periodo in 50% duty cycle.

V tvojem primeru timer nima veze z ledico, ti ledico sam togglaš, s tem ko pišeš v ODR register.
Nastavi PA5 kot output, ne kot alternate function.

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jmivsek
Član
Član



Pridružen-a: Tor 06 Avg 2013 12:41
Prispevkov: 468
Aktiv.: 3.61
Kraj: Ajdovščina

PrispevekObjavljeno: Pet Nov 07, 2014 2:17 pm    Naslov sporočila:   Odgovori s citatom

Takole sem se prižiganja ledic lotil sam z zgoraj predlagano knjižnico STM Standard Peripheral lib na STMVL Discovery ploščici. Spodaj pa še primer generacije 10MHz signala s časovnikom na ploščici STMF4 Discovery, ki je najbližja tvoji.

Koda:
//
// Timers example: LED brightness up/down
//
#include <stm32f10x.h>
#include <stm32f10x_rcc.h>
#include <stm32f10x_gpio.h>
#include <stm32f10x_tim.h>

void initTimer3(void)
{
   GPIO_InitTypeDef GPIO_InitStruct;
   TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
   TIM_OCInitTypeDef TIM_OCInitStruct;
   
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOC, ENABLE);
   
   GPIO_StructInit(&GPIO_InitStruct);
   GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8; // LED3
   GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; // Timer 3 output
   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
   GPIO_Init(GPIOC, &GPIO_InitStruct);

   GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);

   TIM_TimeBaseStructInit(&TIM_TimeBaseStruct);
   TIM_TimeBaseStruct.TIM_Prescaler = SystemCoreClock/100000-1; // 0..239 =  10KHz
   TIM_TimeBaseStruct.TIM_Period = 1000-1;                      // 0..999 = 100Hz
   TIM_TimeBaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
   TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStruct);
   
   // Timer3 Output Channel 3 init
   TIM_OCStructInit(&TIM_OCInitStruct);
        TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;
   TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;
   TIM_OC3Init(TIM3, &TIM_OCInitStruct);
   TIM_Cmd(TIM3, ENABLE);
}

void setDutyCycle(int percent)
{
   TIM_SetCompare3(TIM3, percent*10);
}

void delay(int ms)
{
   int i;
   for (i = 0; 100*ms > i; i++) ; //how much is ms?
}

int main(void)
{
   int i;
   initTimer3();
   while(1){
      for (i = 0; i < 100; i++){
       setDutyCycle(i);
       delay(200);
      }
    for (i = 100; i > 0; i--){
       setDutyCycle(i);
       delay(200);
      }
   }
}



Koda:

//
// 10MHz signal from Timer9 on PE5
//
#include <stm32f4xx.h>
#include <stm32f4xx_rcc.h>
#include <stm32f4xx_gpio.h>
#include <stm32f4xx_tim.h>

void initTimer(void)
{
   GPIO_InitTypeDef GPIO_InitStruct;
   TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
   TIM_OCInitTypeDef TIM_OCInitStruct;
   
   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9, ENABLE);
   
   GPIO_StructInit(&GPIO_InitStruct);
   GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
   GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
   GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_DOWN;
   GPIO_Init(GPIOE, &GPIO_InitStruct);
   
   GPIO_PinAFConfig(GPIOE, GPIO_PinSource5, GPIO_AF_TIM9);

   TIM_TimeBaseStructInit(&TIM_TimeBaseStruct);
   TIM_TimeBaseStruct.TIM_Prescaler = 0; // SystemCoreClock/10000000-1;
   TIM_TimeBaseStruct.TIM_Period = 16;                   
   TIM_TimeBaseStruct.TIM_ClockDivision = 0;
   TIM_TimeBaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
   TIM_TimeBaseInit(TIM9, &TIM_TimeBaseStruct);
   
   TIM_OCStructInit(&TIM_OCInitStruct);
   TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;
   TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;
   TIM_OCInitStruct.TIM_Pulse = 8;
   TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;
   TIM_OC1Init(TIM9, &TIM_OCInitStruct);

   TIM_Cmd(TIM9, ENABLE);
}


int main(void)
{
   initTimer();
   while(1);
}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jure94
Član
Član



Pridružen-a: Sre 05 Maj 2010 17:11
Prispevkov: 433
Aktiv.: 2.56
Kraj: Jesenice / Lj

PrispevekObjavljeno: Pet Nov 07, 2014 5:07 pm    Naslov sporočila:   Odgovori s citatom

Hvala za odgovore ampak to ni to kar iščem. Če bi hotel uporabiti knjižnjico, bi jo.
Zanima me kako povezati TIM2 na GPIO in z njim utripati LED. Naprimer, ko je vrednost v TIM2_CNT = TIM2_CCR1 naj avtomatsko preklopi LED. V TIM2_CCMR1 sem nastavil OC1M na 011 in GPIOA_MODER5 na 10 (torej "alternate function 1" na PA5).
Zanima me, kaj sem pozabil oz. ali je to sploh možno tako, kot sem si zamislil in, kot je narejeno na primeru, ki sem ga podal?
Tako, da spremljam vrednost in ko je CNT=CCR1 pišem v ODR register znam ampak to ni to kar želim.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 6.05
Kraj: Ljubljana

PrispevekObjavljeno: Pet Nov 07, 2014 5:25 pm    Naslov sporočila:   Odgovori s citatom

a) šteješ (poženeš timer) in v zanki, če ni drugega dela, preverjaš, ali si že na neki cifri,
b) nastaviš match register, da ti to avtomatsko preverja.

in potem enkrat prižgeš LED, drugič ga ugasneš.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Pet Nov 07, 2014 5:40 pm    Naslov sporočila:   Odgovori s citatom

Spodnja koda vsako sekundo toggla izhod, praktično to pomeni frekvenco 0.5Hz.

Ne bom se spuščal na tvoj nivo programiranja, če bi rad v bite spremenil, izvoli Wink

PS: koda je samo skopirana iz moje strani in ustrezno predelana za F401, zato se lahko zgodi, da so kakšni komentarji napačni.

Koda:

/**
 *    OC toggle mode TIM2 -> PA5
 *
 *    @author      Tilen Majerle
 *    @email      tilen@majerle.eu
 *    @website      http://stm32f4-discovery.com
 *    @ide         Keil uVision 5
 */
#include "defines.h"
#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_tim.h"
 
void TM_LEDS_Init(void) {
    GPIO_InitTypeDef GPIO_InitStruct;
   
    /* Clock for GPIOA */
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
 
    /* Alternating functions for pins */
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_TIM2);
   
    /* Set pins */
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_Init(GPIOA, &GPIO_InitStruct);
}
 
void TM_TIMER_Init(void) {
    TIM_TimeBaseInitTypeDef TIM_BaseStruct;
   
    /* Enable clock for TIM2 */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
   
   /* Max frequency for timer */
    TIM_BaseStruct.TIM_Prescaler = 0;
    /* Count up */
    TIM_BaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_BaseStruct.TIM_Period = 83999999; /* Toggle output every 1 second => TIM2 = 32bit */
    TIM_BaseStruct.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_BaseStruct.TIM_RepetitionCounter = 0;
    /* Initialize TIM2 */
    TIM_TimeBaseInit(TIM2, &TIM_BaseStruct);
    /* Start count on TIM2 */
    TIM_Cmd(TIM2, ENABLE);
}
 
void TM_OC_Init(void) {
    TIM_OCInitTypeDef TIM_OCStruct;
   
   /* Common settings */
   /* Set toggle mode */
    TIM_OCStruct.TIM_OCMode = TIM_OCMode_Toggle;
    TIM_OCStruct.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCStruct.TIM_OCPolarity = TIM_OCPolarity_Low;
   /* Init OC1 */
    TIM_OC1Init(TIM2, &TIM_OCStruct);
   /* Enable preload */
    TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);
}
 
int main(void) {
    /* Initialize system */
    SystemInit();
    /* Init leds */
    TM_LEDS_Init();
    /* Init timer */
    TM_TIMER_Init();
    /* Init OC */
    TM_OC_Init();
   
    while (1) {
 
    }
}


_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net


Nazadnje urejal/a tilz0R Sob Nov 08, 2014 1:48 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jmivsek
Član
Član



Pridružen-a: Tor 06 Avg 2013 12:41
Prispevkov: 468
Aktiv.: 3.61
Kraj: Ajdovščina

PrispevekObjavljeno: Pet Nov 07, 2014 7:36 pm    Naslov sporočila:   Odgovori s citatom

Jure, mislim da si pozabil nastaviti Output Compare registrov, zato nimaš nič na izhodnem GPIO pinu časovnika. Tako Tilen kot jaz sva ti poslala primera polne nastavitve, ki ju ni težko preštudirati, nato pa uporabiti tako kot ti - z neposrednim nastavljanjem registrov.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jure94
Član
Član



Pridružen-a: Sre 05 Maj 2010 17:11
Prispevkov: 433
Aktiv.: 2.56
Kraj: Jesenice / Lj

PrispevekObjavljeno: Sob Nov 08, 2014 1:47 pm    Naslov sporočila:   Odgovori s citatom

No pa še zaključek. Kriv sem sam, ker sem narobe/površno prebral del glede nastavitve GPIO alternate function registra. Sem pa iskal napake v nastavitvah timerja, ker sem bil prepričan, da so GPIO registri pravilno nastavljeni.
Takole sem imel prej: GPIOA->AFR[0] |= (1 << 4);
to je pa pravilno: GPIOA->AFR[0] |= (1 << 4*5);
Lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
zaz
Član
Član



Pridružen-a: Pon 06 Apr 2015 14:23
Prispevkov: 89
Aktiv.: 0.81
Kraj: Ljubljana

PrispevekObjavljeno: Ned Nov 08, 2015 11:21 pm    Naslov sporočila:   Odgovori s citatom

Bom še jaz nekaj vprašal glede timer-jev. V datasheet-u za STM32f4-discovery piše pri timer-ju 2 in 5, da štejeta navzgor, ko dosežeta določeno vrednost se izvede overflow event. Zanima me kaj natančno je ta overflow event in kako bi ga lahko zaznal?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Ned Nov 08, 2015 11:22 pm    Naslov sporočila:   Odgovori s citatom

Overflow event je takrat, kadar se števec resetira nazaj na 0.

Zaznaš ga tako, da vklopiš timerjev globalni interrupt, ter overflow interrupt za tvoj timer.

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
zaz
Član
Član



Pridružen-a: Pon 06 Apr 2015 14:23
Prispevkov: 89
Aktiv.: 0.81
Kraj: Ljubljana

PrispevekObjavljeno: Čet Feb 18, 2016 7:12 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni,
pri uporabi TIM7 sem naletel na težavo. TIM7 deluje z frekvenco 84MHz. Želel sem, da se vsako 1us tvori interrupt, zato sem v kodi, zapisal, da naj šteje do 84.

TIM_Time_Base_Structure.TIM_Period = 84;

Rezultat tega pa je, da se interrupti tvorijo v precej daljših časovnih obdobjih.
V nastavitah timer-ja ne uporabljam Prescaler-ja.


Celotna koda nastavitve timer-ja
Koda:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE);

TIM_TimeBaseInitTypeDef TIM_Time_Base_Structure;
RCC_ClocksTypeDef RCC_Clocks;
TIM_Time_Base_Structure.TIM_Period = 84;
TIM_Time_Base_Structure.TIM_ClockDivision = 0;
TIM_Time_Base_Structure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM7, &TIM_Time_Base_Structure);


koda prekinitvene rutine:

void TIM7_IRQHandler(void)
{
   if(TIM_GetITStatus(TIM7, TIM_IT_Update) != RESET)
   {

      GPIO_ToggleBits(GPIOD, RED_LED);
      Timer_Count++;
      TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
   }
}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Čet Feb 18, 2016 7:25 pm    Naslov sporočila:   Odgovori s citatom

Tim Prescaler na 0 ter preveri PLL. Bi rekel da ne dela prav.

Kaksen vir ure imaš?

Drugače mora timer štet do 83, ker od 0 do 83 = 84 vrednosti Smile

Je interrupt prepočasen za približno 3x ali približno 1.5x?

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
zaz
Član
Član



Pridružen-a: Pon 06 Apr 2015 14:23
Prispevkov: 89
Aktiv.: 0.81
Kraj: Ljubljana

PrispevekObjavljeno: Čet Feb 18, 2016 7:37 pm    Naslov sporočila:   Odgovori s citatom

Kako preverim PLL?

Uro imam nastavljeno prek vodila APB1, kjer je hitrost 84MHz če sem pravilno razumel.

Interrupt bi rekel, da je več kot 3x prepočasen, ker zalo jasno vidim utripanje led diode, ki toggl-a ob vsakem interruptu
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Čet Feb 18, 2016 7:44 pm    Naslov sporočila:   Odgovori s citatom

system_stm32f4xx.c:

PLL_M = stevilka, enaka tvoji vhodni frekvenci kristala v MHz. (če ga nimaš, uporabi 16, to je interni clock), recimo za 8MHz kristal uporabi 8.

PLL_N = 336
PLL_P = 4
PLL_Q = 7.


stm32f4xx.h:

HSE_VALUE vrednosti tvojega kristala. Če imaš 8MHz uporabi 8000000.



Ura APB1 vodila za tvoj MCU je 42MHz ob pravem PLL, ampak TIM dela pa z 2x to frekvenco v tvojem primeru, če imaš inicializirano kot je v tem primeru. Glede na link uporabi TIM7 namesto TIM4 in upoštevaj frekvenco TIM7 84MHz ob pravi nastavitvi PLL-ja.

Prescaler daj timerju na 0. Clock division ni prescaler!

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
zaz
Član
Član



Pridružen-a: Pon 06 Apr 2015 14:23
Prispevkov: 89
Aktiv.: 0.81
Kraj: Ljubljana

PrispevekObjavljeno: Pet Feb 19, 2016 5:31 pm    Naslov sporočila:   Odgovori s citatom

Sem poskusil konfigurirat časovnik po tistem na tvoji stran pa ne najdem nikjer kolikšna je vrednost TIM_CKD_DIV1

Poskusil sem tudi spremeniti vrednosti v navedenih datotekah, čeprav mi ni jasno zakaj bi bile že zapisane vrednosti napačne, saj so vse plate iste.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 47 dni


Powered by phpBB © 2001, 2005 phpBB Group