collapse

* Posts Recentes

Covid-19 por Njay
[Hoje às 02:48]


'Arame' para soldar a baixa temperatura por SerraCabo
[Ontem às 21:36]


Bateria Parkside não carrega por jm_araujo
[26 de Março de 2020, 11:38]


STM32 inicio por senso
[24 de Março de 2020, 18:23]


Detector de AC - Projecto com PCB por SerraCabo
[23 de Março de 2020, 10:23]


EU Duty Changes, A Whole VAT Of Trouble For Hackers? por SerraCabo
[21 de Março de 2020, 20:24]


LM3915 por Njay
[20 de Março de 2020, 18:18]


Creality Ender 3D printer por Njay
[20 de Março de 2020, 17:24]


Tolerancia para cortar perfil aluminio por jm_araujo
[19 de Março de 2020, 11:47]


duvida escolher um varistor por SerraCabo
[15 de Março de 2020, 22:12]

Autor Tópico: AVR - UART Receive  (Lida 4176 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.666
  • Helpdesk do sitio
Re: AVR - UART Receive
« Responder #15 em: 15 de Setembro de 2011, 19:28 »
Malloc em micro-controladores é perigoso, porque qualquer falha nos free e rebenta a stack bem depressa.

É claro que o micro não crasha se ficar num ciclo infinito, porque todos os micros têm de ficar em ciclo infinito, se não dão a volta ao program counter e recomeçam o programa do endereço 0, o que para o utilizador iria parecer um reset.

Isso de ele parecer que crasha é porque a tua função de recepção é bloqueante e se não tiver nada para ler fica ali á espera até receber alguma coisa.
Avr fanboy

Offline Tyran

  • Mini Robot
  • *
  • Mensagens: 293
Re: AVR - UART Receive
« Responder #16 em: 15 de Setembro de 2011, 20:56 »
Depende do microcontrolador e da memória ram e do espaço para a heap.

Mas nestes não costuma ser boa prática, já para não falar de bugs que possam existir nas libs...

Tenta saber sempre qual o tamanho máximo que podes vir a precisar e trabalhas com base nisso. Não quer dizer que não possas fazer da outra maneira, mas tens de ter cuidado extra.

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.744
Re: AVR - UART Receive
« Responder #17 em: 15 de Setembro de 2011, 21:19 »
Malloc em micro-controladores é perigoso, porque qualquer falha nos free e rebenta a stack bem depressa.

É claro que o micro não crasha se ficar num ciclo infinito, porque todos os micros têm de ficar em ciclo infinito, se não dão a volta ao program counter e recomeçam o programa do endereço 0, o que para o utilizador iria parecer um reset.

Isso de ele parecer que crasha é porque a tua função de recepção é bloqueante e se não tiver nada para ler fica ali á espera até receber alguma coisa.

Hum disso desconhecia...é a desvantagem de andar a estudar informática e não electrotecnica, tudo o que passe da electronica basica uma pessoa fica a nora...  :-\

Pensei que so tinhamos que ter cuidado com a memória gasta, do resto era codigo para cima..

Cumprimentos,
André Carvalho.
Cumprimentos,
André Carvalho.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.666
  • Helpdesk do sitio
Re: AVR - UART Receive
« Responder #18 em: 15 de Setembro de 2011, 21:21 »
Mas tambem, ele bem que até pode usar um array com 1K para receber dados, tem 4K de ram para usar, chega e sobra bem.
O melhor nesse caso é usar uart com interrupções a ler para um buffer circular.
Avr fanboy

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: AVR - UART Receive
« Responder #19 em: 21 de Setembro de 2011, 00:33 »
Feito! Uf...!  8)

Obrigado pelas dicas pessoal.