collapse

* Posts Recentes

1950's Televisions por SerraCabo
[Hoje às 11:18]


CuriousMarc e o HP-9825 - reparação em infinita paciência por jm_araujo
[Ontem às 20:37]


Kit fotovoltaico para autoconsumo por filjoa
[18 de Abril de 2021, 03:39]


The All-New Arduino IDE 2.0: Introduction and Test por dropes
[13 de Abril de 2021, 18:41]


Equivalente Mosfet 65s1k5ce por filjoa
[13 de Abril de 2021, 17:29]


Impostos: segurem-se, vem bernarda por Hugu
[13 de Abril de 2021, 11:16]


Borracha para pára-brisas ~72cm? por Hugu
[10 de Abril de 2021, 15:39]


Problema com Tablet por Fifas
[06 de Abril de 2021, 15:45]


White smoke - LG Hi-Fi por almamater
[02 de Abril de 2021, 13:31]


TV Barata sem imagem por jm_araujo
[24 de Março de 2021, 17:30]

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

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

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.712
  • 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.757
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.712
  • 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.